regex - 带有 HTTP GET 参数的 django url 调度程序

标签 regex django django-urls

在 urls.py 文件中:

url(r'^api/user_info/(?P<username>[a-zA-Z\d]+)\&', 'corresponding.view')
url(r'^api/user_info/(?P<username>[a-zA-Z\d]+)', 'corresponding.view')

/api/user_info/username 始终会有 HTTP Get 参数。

问题在于,在 corresponding.view 函数中,username 将计算为“myusername?clientversion=2.0”,而不是“myusername”和 request.GET['clientversion'] = "2.0"

第一个 url 调用是 try catch 其中的 & 符号,但没有帮助。

提前致谢。

最佳答案

参见this question ;您不使用 Django 的 URLConf 访问查询参数。尝试使用 URL 解析器处理 ?& 字符不会带来幸福。

只需使用以下 URL 模式:

url(r'^api/user_info/(?P<username>\w\+)/$', 'corresponding.view')

并访问 corresponding.view() 函数中的 clientversion 查询参数:

def view(request):
    client_version = request.GET.get('clientversion')
    ...

或者,如果您说它应该是强制

from django.http import Http404

def view(request):
    try:
        client_version = request.GET['clientversion']
    except KeyError:
        raise Http404

关于regex - 带有 HTTP GET 参数的 django url 调度程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12080478/

相关文章:

django - 如何在 django 2.0 中的 url 中有选项

regex - 奇怪的 sed 行为

python - 为什么我的正则表达式中的 $ 不匹配行尾

django - 如何使用 ToManyField 加快 Tastypie 的查询速度

python - 如何使用 django-autocomplete-light 更改选项值?

python - 覆盖 Django 中的模板

javascript - 在 JavaScript 中使用替换删除注释

regex - 如何在 ruby​​ 的正则表达式中对特殊字符和字母进行分组?

python - 渲染表单字段随机时间

python - Django 动态 url