Synthax在django中声明URL

Synthax在django中声明URL,django,django-urls,Django,Django Urls,我不确定是否理解下面两个URL之间的区别 from django.conf.urls import patterns, url from main_app import views urlpatterns = patterns('', url(r'^$', views.main, name='home'), (r'^accounts/$', views.accounts, name="account"), ... ) 两个人都在为我工作。我应该用一个而不是另一个吗?为什

我不确定是否理解下面两个URL之间的区别

from django.conf.urls import patterns, url
from main_app import views

urlpatterns = patterns('',
    url(r'^$', views.main, name='home'),
    (r'^accounts/$', views.accounts, name="account"),
   ...
)

两个人都在为我工作。我应该用一个而不是另一个吗?为什么?我很快找到的所有示例都引用了第一个syntax,但我想了解原因。

第一个语法使用url函数,允许您将关键字参数字典传递给视图

从文件中:

urlpatterns = patterns('blog.views',
    url(r'^blog/(?P<year>\d{4})/$', 'year_archive', {'foo': 'bar'}),
)

这是URL.py文件的最新示例

from django.conf.urls import patterns, url

urlpatterns = patterns('',
    url(r'^articles/2003/$', 'news.views.special_case_2003'),
    url(r'^articles/(\d{4})/$', 'news.views.year_archive'),
    url(r'^articles/(\d{4})/(\d{2})/$', 'news.views.month_archive'),
    url(r'^articles/(\d{4})/(\d{2})/(\d+)/$', 'news.views.article_detail'),
)

所以你可以说这是标准,因为大多数人都会通过这种方式学习,而且它似乎也是通过这种方式推广的。

那么,当没有提供参数时,这两种方法都是等效的,还是应该预先选择一种?这里有一个标准吗?是的,如果没有提供额外的参数,两者都是等价的。真的没有更好的方法去做;试着保持一致。我个人喜欢使用url()函数,所以我不会混合使用这两种方法
from django.conf.urls import patterns, url

urlpatterns = patterns('',
    url(r'^articles/2003/$', 'news.views.special_case_2003'),
    url(r'^articles/(\d{4})/$', 'news.views.year_archive'),
    url(r'^articles/(\d{4})/(\d{2})/$', 'news.views.month_archive'),
    url(r'^articles/(\d{4})/(\d{2})/(\d+)/$', 'news.views.article_detail'),
)