我有点好奇知道为什么Django 1.9用设置,URL和其他配置文件中的lists []替换了元组()
我刚升级到Django 1.9并发现了这些变化.他们背后的逻辑是什么?
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles'
]
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
Run Code Online (Sandbox Code Playgroud)
urls.py
urlpatterns = [
url(r'^', admin.site.urls),
]
Run Code Online (Sandbox Code Playgroud)
这些变化有什么不同吗?
Django 教程使用 Installed_apps 中的列表进行了以下说明。但默认值是元组,其他消息来源也表示在这种情况下 Django 更喜欢元组而不是列表。
我的问题是:如果我按照教程所说的操作,并使用列表而不是元组,这会在设置的其他地方导致问题吗?或者这并不重要?
我在运行 Django 1.8 和 Python 3.4 的 PythonAnywhere 上使用 virtualenv
教程所说的添加到 mysite/settings.py 的内容:
INSTALLED_APPS = [
'polls.apps.PollsConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
Run Code Online (Sandbox Code Playgroud) 当自定义管理站点时,我们可以使用list或tuple喜欢
@admin.register(Model_name)
class Model_nameAdmin(admin.ModelAdmin):
list_display = ['a', 'b', 'c'] # using list
# lets say a, b, c are fields of model(Model_name)
or
list_display = ('a', 'b', 'c') # using tuple
Run Code Online (Sandbox Code Playgroud)
我很好奇使用列表与元组相比是否有任何区别,反之亦然,例如在检索管理站点或类似内容时的性能。我知道元组比列表的性能更好,但我们不会在这里循环。我查看了列表和元组之间的区别是什么,为什么-django-use-tuples-for-settings-and-not-lists, 为什么-djangos-modeladmin-uses-lists-over -元组,反之亦然,但没有得到我的答案。一直使用元组更好吗?我专门询问管理网站。
django ×3
python ×3
tuples ×2
django-1.9 ×1
django-admin ×1
list ×1
python-2.7 ×1
python-3.x ×1