我已经获得了一些Django代码来接管settings.py中urlpatterns中的某些条目使用url(),而有些不在这里可以看到:
urlpatterns = patterns('',
(r'^grappelli/', include('grappelli.urls')),
url(r'^admin/', include(admin.site.urls)),
(r'^movies/', include('movies.urls')),
(r'^profile/', include('userprofile.urls')),
(r'^api/', include(v1_api.urls)),
url(r'^$', TemplateView.as_view(template_name='base.html'), name='home'),
url(r'^trailer/', TemplateView.as_view(template_name='trailer.html'), name='trailer'),
url(r'^newuser/', TemplateView.as_view(template_name='trailer.html'), name='activate'),
url(r'^abcd123/', TemplateView.as_view(template_name='trailer.html'), name='url_login'),
url(r'^fb/', TemplateView.as_view(template_name='fb.html'), name='fb'),
)
是否使用url(
会有什么不同吗?有推荐的标准吗?
答案 0 :(得分:5)
如上所述,这是一个完整的例子,说明如何在Django 1.8(和转发)中使用元组列表。 1.8是一个长期版本,因此升级到1.8将保证您至少三年的安全发布。
mLoader
您当时也可以从urlpatterns = [
url(r'^grappelli/', include('grappelli.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'^movies/', include('movies.urls')),
url(r'^profile/', include('userprofile.urls')),
url(r'^api/', include(v1_api.urls)),
url(r'^$', TemplateView.as_view(template_name='base.html'), name='home'),
url(r'^trailer/', TemplateView.as_view(template_name='trailer.html'), name='trailer'),
url(r'^newuser/', TemplateView.as_view(template_name='trailer.html'), name='activate'),
url(r'^abcd123/', TemplateView.as_view(template_name='trailer.html'), name='url_login'),
url(r'^fb/', TemplateView.as_view(template_name='fb.html'), name='fb'),
]
列表中删除patterns
。
答案 1 :(得分:3)
是否使用
url(
会有什么不同吗?
没有。传递list
或tuple
的方式与包含在url()
中的参数的处理方式相同:
django/urls/__init__.py
:
if isinstance(t, (list, tuple)):
t = url(prefix=prefix, *t)
elif isinstance(t, RegexURLPattern):
t.add_prefix(prefix)
是否有推荐的标准?
使用url()
。
config.urls.patterns()
本身计划在django 1.10中弃用,此时urlpatterns
必须是url()
个实例的列表,原始元组不能再使用了。
答案 2 :(得分:2)
元组是用于指定网址格式的旧(已弃用)方式。
在您的情况下,使用您正在使用的Django版本,如果您使用元组或url()
,则没有任何区别。
另请注意,自Django 1.8起,不再需要patterns()
和has been deprecated。 Django 1.8 recommends改为使用url()
列表。