我试图将js请求中的4个参数读入django应用程序。这就是我执行js请求的方式:
site = "http://127.0.0.1:8000/products/loginfo/" + account + "?userId=" + userId + "&sessionId=" + sessionId + "&url=" + url;
httpGet(site);
这是urls.py中的网址:
url(r'^loginfo/(?P<siteid>[0-9])/(?P<userdid>)/(?P<sessionid>)/(?P<url>)/$', 'log_info', name='log_info'),
这是views.py中的视图:
def log_info(request,siteid,userdid,sessionid,url):
print 'siteid' + str(siteid)
print 'userid ' + str(userid)
print 'sessionid ' + str(sessionid)
print 'url ' + str(url)
return render_to_response("products/all.html", locals(), context_instance=RequestContext(request))
但是,我终于在终端上打印了什么,出了什么问题?
答案 0 :(得分:1)
问题是url.py
中的网址格式与您输入的网址不匹配。
您可以直接使用request.GET
dictionary来阅读查询参数。
此更改网址格式为
url(r'^loginfo/(?P<siteid>[0-9]+)', 'log_info', name='log_info'),
^loginfo/(?P<siteid>[0-9]+)
匹配loginfo
后跟任意位数。这可确保如果网址为loginfo/1234
,则会将其重定向到log_info
,并将1234
作为siteid
现在将视图更改为
def log_info(request,siteid):
print 'siteid' + str( siteid )
# Changes made here.
print 'userid ' + request.GET[userId]
print 'sessionid ' + request.GET[sessionId]
print 'url ' + request.GET[url]
return render_to_response("products/all.html", locals(), context_instance=RequestContext(request))