捕获Django views.py中的所有URL参数?

时间:2014-07-15 16:06:42

标签: python django paypal-ipn

讨论如何获得1个参数有很多问题,但是如何获得所有参数,保留它们的顺序?

就是这样:request.GET.get('q', '')获得1个参数。

我需要将POST请求捕获到我的URL,然后向URL添加一个参数,然后将其发回以确认其有效性和来源。如果您想知道,这适用于PayPal IPN。

谢谢!

3 个答案:

答案 0 :(得分:3)

正如@Daniel Roseman所说,你可能不需要保留订单,在这种情况下你可以使用request.GET dict

或者你可以获得原始查询字符串:

request.META['QUERY_STRING']

https://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpRequest.META

答案 1 :(得分:1)

Daniel Roseman所述,POST或GET请求参数之间的顺序不应该很重要;把它们想象成key - value对而不是列表。

如果你想维护秩序,那么可以将列表作为value中的POST传递给Django:

myData = request.POST.get("myQuery")

具体来说, POST请求不使用查询字符串* see here)。 POST使用请求体,而GET使用查询字符串。请注意,从安全角度来看,这也意味着重要的客户信息不会公开显示在网址中 - 在处理付款时尤其非常重要。

更新:*显然,POST 可以使用查询字符串,但他们真的不应该这样做。 See this SO post for more

答案 2 :(得分:0)

paypal ipn

是的,订单在这里很重要。这就是我将要使用的内容:

newParameteres = 'cmd=_notify-validate&' + self.request.POST.urlencode()
req = urllib2.Request("http://www.paypal.com/cgi-bin/webscr", newParameteres)