1

在 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')

总会有 HTTP Get 参数/api/user_info/username

问题是在corresponding.view函数中,username将评估为“myusername?clientversion=2.0”之类的东西,而不是评估为“myusername”和request.GET['clientversion'] = "2.0".

第一个url电话是尝试在其中捕捉与号,但这没有帮助。

提前致谢。

4

1 回答 1

4

看到这个问题;您不能使用 Django 的 URLConf 访问查询参数。尝试使用 URL 解析器处理?&字符不会带来快乐。

只需使用以下 URL 模式:

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

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

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
于 2012-08-22T20:09:16.880 回答