gpt4 book ai didi

python - django项目的urls.py和views.py之间的联系

转载 作者:太空宇宙 更新时间:2023-11-04 06:03:13 25 4
gpt4 key购买 nike

View .py

from django.http import Http404, HttpResponse import datetime

def hours_ahead(request, offset):
try:
offset = int(offset)
except ValueError:
raise Http404()
dt = datetime.datetime.now() + datetime.timedelta(hours=offset)
html = "<html><body>In %s hour(s), it will be %s.</body></html>" % (offset, dt)
return HttpResponse(html)

网址.py

from django.conf.urls.defaults import *
from mysite.views import hello, current_datetime, hours_ahead

urlpatterns = patterns('',
(r'^hello/$', hello),
(r'^time/$', current_datetime),
(r'^time/plus/(\d{1,2})/$', hours_ahead),
)

它表示从匹配的 url 中提取值的参数偏移量与其名称无关,但位置很重要。这是它的第二个参数,位于 request 之后,决定它可以做什么。但为什么 ? hours_ahead ,只是一个用户定义的方法,而不是一个类或其他东西。谁赋予它的权力使参数的位置可以那样工作。所以说清楚,我的问题是,“offset = int (offset)”是否有意义,为什么当用户设置小时数时 offset 可以从 url 接收值。

最佳答案

它的工作方式是 Django 读取这个 url 模式 r'^time/plus/(\d{1,2})/$',提取括号中的参数 (在本例中为 (\d{1,2})),然后将其作为参数传递给 hours_ahead 函数。如果有很多参数,它们在 url 模式中的写入顺序也决定了它们被传递到相应 View 函数的顺序。您可以在此处进一步阅读文档:https://docs.djangoproject.com/en/dev/topics/http/urls/

关于python - django项目的urls.py和views.py之间的联系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23591580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com