我不知道如何在Django中为/check?id=984c3a7b-766b-450e?
url设计一个正则表达式。我尝试了r'^check\?id=(?P<id>[0-9a-f-]+)/$'
,但它返回“找不到页面”。不过,仅与(?P<id>[0-9a-f-]+)
一起使用效果很好。
答案 0 :(得分:3)
/check?id=984c3a7b-766b-450e
是路径的 not 部分,不能由Django的URL模式捕获。它是querystring
,由QueryDict
对象request.GET
[Django-doc]捕获。
urlpatterns
如下所示:
# app/urls.py
from app.views import some_view
from django.urls import url
urlpatters = [
url(r'^check$', some_view),
# ...
]
,然后在视图中,可以使用以下命令获取与id
键对应的值:
# app/views.py
def some_view(request):
my_id = request.GET['id']
# ...
# return a HttpResponse
request.GET
的行为或多或少类似于普通的Python字典,不同之处在于键可以映射到多个值。