Django 2.0 URL正则表达式

2024-05-08 16:07:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图设置一个偏移量,但我想通过只允许一个或两个数字的数字来限制它的最大值99个小时,但是我不确定Django 2.0使用的语法。我试图寻找更新的文件,但我找不到它,也许我错过了它,但我确实在这里张贴之前看过。在

这是我的密码视图.py文件:

# Creating a view for showing current datetime + and offset of x amount of hrs
    def hours_ahead(request, offset):
        try:
            offset = int(offset)
        except ValueError:
            # Throws an error if the offset contains anything other than an integer
            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文件,这允许我传递一个整数,但我只想将其限制为1位或2位数字:

^{pr2}$

我试过了

path(r'^date_and_time/plus/\d{1,2}/$', hours_ahead),

但是我得到页面找不到(404)错误。在

提前谢谢!在


Tags: and文件ofpyan密码datetimehtml
1条回答
网友
1楼 · 发布于 2024-05-08 16:07:03

Django 2.0+中的path不接受正则表达式。您要么必须使用re_path

from django.urls import re_path

...

re_path(r'^date_and_time/plus/\d{1,2}/$', hours_ahead),

或者在您的视图中执行验证:

^{pr2}$

我不喜欢复杂的正则表达式,所以我会保留新样式的路由格式并在视图本身中执行验证。在

相关问题 更多 >