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_2003
是 myapp/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+ 中,您必须使用可调用对象。
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_2003
是 myapp/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+ 中,您必须使用可调用对象。