小编dar*_*der的帖子

在python dict中赋值(copy vs reference)

我理解在python中的每一件事,无论是数字,字符串,字典还是任何东西都是一个对象.变量名只是指向内存中的对象.现在根据这个问题,

>> a_dict = b_dict = c_dict = {}

这将创建一个空字典,并且所有变量都指向此dict对象.因此,改变任何一个都会反映在其他变量中.

>> a_dict["key"] = "value" #say
>> print a_dict
>> print b_dict
>> print c_dict
Run Code Online (Sandbox Code Playgroud)

会给

{'key': value}
{'key': value}
{'key': value}
Run Code Online (Sandbox Code Playgroud)

我已经理解了指向对象的变量的概念,所以这看起来很公平.

现在即使它可能很奇怪,因为它是如此基本的陈述,为什么会发生这种情况?

>> a = b = c = 1
>> a += 1
>> print a, b, c
2, 1, 1   # and not 2, 2, 2
Run Code Online (Sandbox Code Playgroud)

问题的第一部分:为什么这里应用的概念不同?

实际上,当我试图为此寻找解决方案时,出现了这种疑问:

>> a_dict = {}
>> some_var = "old_value"
>> a_dict['key'] = some_var
>> some_var = "new_value" …
Run Code Online (Sandbox Code Playgroud)

python reference

10
推荐指数
2
解决办法
2万
查看次数

Django 1.7 - 无法找到教程

我一直在网上搜索学习Django的任何参考或教程.由于我将学习它,因此我学习最新(发布)版本(1.7)是有道理的.但是,我能找到的所有教程(Tango与Django及其他人)似乎都在教授以前的版本(1.5).我想知道

1)是否有适用于最新版本的质量指南?
2)django的版本是否存在相当大的基本差异,这会使较旧的教程对于更新的版本完全无用?

我知道文档非常好.我做了它的教程.这太棒了.在进入文档之前,我只想通过其他高质量的教程(与1.7版本相关)进行更多曝光.

python django django-1.7

3
推荐指数
1
解决办法
2605
查看次数

Django allauth 重定向到注册

我正在使用 django all-auth 包来允许人们通过 g+ oauth2 登录。问题在于,在服务器上,登录会导致其重定向到 /accounts/social/signup 页面,而不是直接登录并返回主页。

这是所需的代码详细信息

设置.py

LOGIN_URL = '/accounts/google/login/'
LOGIN_REDIRECT_URL = '/'
SOCIALACCOUNT_QUERY_EMAIL = True
ACCOUNT_UNIQUE_EMAIL = True
ACCOUNT_EMAIL_REQUIRED = True
SOCIALACCOUNT_PROVIDERS = {
    'google': {
    'SCOPE': [
    'https://www.googleapis.com/auth/userinfo.email',
     'https://www.googleapis.com/auth/userinfo.profile',
     'https://www.googleapis.com/auth/plus.login',
     'https://www.googleapis.com/auth/plus.me'
     ],
     'AUTH_PARAMS': {'access_type': 'online'}
    }
}
SOCIALACCOUNT_ADAPTER = 'lostndfound.views.LoginAdapter'
Run Code Online (Sandbox Code Playgroud)

LostndFound.views

class LoginAdapter(DefaultSocialAccountAdapter):
    def pre_social_login(self, request, sociallogin):
        user = sociallogin.account.user
        if user.email.split('@')[-1] not in settings.ALLOWED_LOGIN_HOSTS:
            messages.error(request, "You can login only through an *** account.")
            raise ImmediateHttpResponse(HttpResponseRedirect(reverse('home')))
Run Code Online (Sandbox Code Playgroud)

python django django-allauth

2
推荐指数
1
解决办法
2451
查看次数

标签 统计

python ×3

django ×2

django-1.7 ×1

django-allauth ×1

reference ×1