【问题标题】:unable to print parameters from url无法从 url 打印参数
【发布时间】:2015-06-19 03:42:12
【问题描述】:

我正在尝试将 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))

但是,我什么都没有打印在终端上,怎么了?

【问题讨论】:

    标签: javascript python django request


    【解决方案1】:

    问题是url.py 中的 url 格式与您输入的 url 不匹配。

    您可以直接使用request.GET dictionary读取查询参数。

    对于此更改 url 模式为

    url(r'^loginfo/(?P<siteid>[0-9]+)', 'log_info', name='log_info'),
    
    • ^loginfo/(?P&lt;siteid&gt;[0-9]+) 匹配loginfo 后跟任意位数。

    这样可以确保如果 url 有loginfo/1234,它将被重定向到log_info1234siteid

    现在将视图更改为

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-12
      • 2016-03-26
      • 2022-12-30
      • 1970-01-01
      • 1970-01-01
      • 2016-06-26
      • 1970-01-01
      • 2017-10-06
      相关资源
      最近更新 更多