在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
调用是尝试捕捉那里的&符号,但它没有帮助。
提前致谢。
答案 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