Django url dispatcher 使用字符串指定函数,为什么?

Django url dispatcher uses strings to specify function, why?

Django 文档显示了这样的示例:

from django.conf.urls import url

from . import views

urlpatterns = [
    url(r'^articles/2003/$', views.special_case_2003),

]

但是,我看到了一些类似这样的代码:

from django.conf.urls import url

urlpatterns = [
    url(r'^articles/2003/$', 'myapp.views.special_case_2003'),

]

其中 special_case_2003myapp/views.py 中函数的名称。 这两种方法有什么区别?

urlpatterns = [
    url(r'^articles/2003/$', 'myapp.views.special_case_2003'),
]

这样的代码已经过时了。将视图作为字符串提供,例如 is deprecated in Django 1.8, and does not work in Django 1.10+。在 Django 1.10+ 中,您必须使用可调用对象。