Django URLconf中的回调函数对象没有被调用
The callback function object in Django URLconf is not called
我正在 Django at a glance | Django documentation | Django
学习 Django
引入URLconf时是这样写的:
To design URLs for an app, you create a Python module called a URLconf. A table of contents for your app, it contains a simple mapping between URL patterns and Python callback functions.
然而,没有调用回调函数。
mysite/news/urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^articles/([0-9]{4})/$', views.year_archive),
]
print('callback funtion:',views.year_archive)
输出:
callback function: <function views.year_archive at 0x1039611e0>
所以它是一个没有被调用的函数对象。
我想应该是views.year_archive()
才能调用。
如果不调用,它是如何工作的?我假设有一个装饰器在父 class.
中处理它
我查看了url
django.conf.urls | Django documentation | Django
的源代码
关键语句是:
elif callable(view):
return RegexURLPattern(regex, view, kwargs, name)
我继续探索 LocaleRegexProvider
、RegexURLPattern
django.urls.resolvers | Django documentation | Django。
没有找到合适的代码来调用回调函数views.year_archive
它的工作原理是什么?
只要对给定的 url 模式发出请求,Django 就会自动调用回调视图函数。
要了解其工作原理,请查看此示例:
>>> def a():
print("Called function a")
>>> def b():
print("Called function b")
>>> def c(callback):
# call the callback function like this
callback()
>>> c(a)
Called function a
>>> c(b)
Called function b
基本上,这就是 Django 的 url
函数的工作方式。
我正在 Django at a glance | Django documentation | Django
学习 Django引入URLconf时是这样写的:
To design URLs for an app, you create a Python module called a URLconf. A table of contents for your app, it contains a simple mapping between URL patterns and Python callback functions.
然而,没有调用回调函数。
mysite/news/urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^articles/([0-9]{4})/$', views.year_archive),
]
print('callback funtion:',views.year_archive)
输出:
callback function: <function views.year_archive at 0x1039611e0>
所以它是一个没有被调用的函数对象。
我想应该是views.year_archive()
才能调用。
如果不调用,它是如何工作的?我假设有一个装饰器在父 class.
中处理它我查看了url
django.conf.urls | Django documentation | Django
关键语句是:
elif callable(view):
return RegexURLPattern(regex, view, kwargs, name)
我继续探索 LocaleRegexProvider
、RegexURLPattern
django.urls.resolvers | Django documentation | Django。
没有找到合适的代码来调用回调函数views.year_archive
它的工作原理是什么?
只要对给定的 url 模式发出请求,Django 就会自动调用回调视图函数。
要了解其工作原理,请查看此示例:
>>> def a():
print("Called function a")
>>> def b():
print("Called function b")
>>> def c(callback):
# call the callback function like this
callback()
>>> c(a)
Called function a
>>> c(b)
Called function b
基本上,这就是 Django 的 url
函数的工作方式。