使用HTTP GET参数的django url调度程序

时间:2012-08-22 19:56:28

标签: 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"。< / p>

第一个url调用是尝试捕捉那里的&符号,但它没有帮助。

提前致谢。

1 个答案:

答案 0 :(得分:4)

this question;您不使用Django的URLConf访问查询参数。尝试使用网址解析程序处理?&字符不会带来快乐。

只需使用以下网址格式:

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