regex - 如何为 /check?id=984c3a7b-766b-450e 设计 URL 模式?
问题描述
我不知道如何/check?id=984c3a7b-766b-450e?
在 django 中为 url 设计一个正则表达式。我试过r'^check\?id=(?P<id>[0-9a-f-]+)/$'
了,但它返回“找不到页面”。只是(?P<id>[0-9a-f-]+)
虽然效果很好。
解决方案
不是路径的一部分,并且不能被 Django 的 URL 模式捕获。它是一个,它被一个对象[Django-doc]捕获。/check?id=984c3a7b-766b-450e
querystring
request.GET
QueryDict
因此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 字典,除了一个键可以映射到多个值。
推荐阅读
- angularjs - 与 angularjs 从版本 1.5.5 到 1.8.2 的代码迁移相关的问题
- r - 使用 left_join 连接两个数据集
- python - 使用 pandas 读取 CSV 文件时出现编码错误
- image-processing - Sobel算子如何展开
- html - 如何有多个不同高度的背景,一个低于另一个
- android - 如何将按钮添加到 android 导航栏(不是底栏)
- c++ - 没有重载函数 QMenuBar::addAction
- android - 如何在 android 中使用 AccessibilityNodeInfoCompat 收听来自视图的点击?
- flutter - 在两个字符串(关键字)之间获取文本字符串 - 在 Dart - Flutter
- android - Android推送通知显示什么