【问题标题】:How to recognize urls with get parameters un django?如何在 django 中识别带有获取参数的 url?
【发布时间】:2020-12-15 07:49:33
【问题描述】:

我正在学习 Django,通常我使用像 www.mysite.com/post/1 这样的 url,我已经理解它们,因为它们在文档中有很好的描述。 现在我需要创建一个 url,如:www.mysite.com/calendar/?day=21&?month=12&year=2020,我不明白应该在我的 ulrpatterns 列表中写什么。 我尝试过这样的事情:

url(r'^search/(?P<parameter>\w+)', views.calendar, name='calendar')

但它不起作用。 我应该写什么作为正则表达式?

谢谢

【问题讨论】:

  • 我认为这个答案stackoverflow.com/a/3711911/683329 应该有效吗?简短版:来自“?”的部分onwards 不是 URL 路径的一部分,它被单独处理。

标签: django regex get django-urls


【解决方案1】:

这些参数不是路径的一部分,您无法使用 url 模式捕获它们。

您可以使用request.GET 在视图中直接访问它们,请参阅the docs

常见的模式如下:

def calendar(request):
    day = request.GET.get("day")  # Will be None if "day" isn't in the query
    month = request.GET.get("month")
    year = request.GET.get("year")
    [...]

【讨论】:

    猜你喜欢
    • 2013-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-27
    • 1970-01-01
    • 2020-12-07
    • 2020-08-24
    • 2020-02-01
    相关资源
    最近更新 更多