如何使用get django参数识别网址?

问题描述

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

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

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

谢谢

解决方法

这些参数不是路径的一部分,您无法使用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")
    [...]

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...