从url获取请求参数

时间:2012-06-07 07:42:38

标签: python django

我有一个类型的url,其中查询字符串是这样的......?

  

下一= /接触/一千零六十二万六千零九十六分之二百&安培;背面%3DZHViYWkuZHViaXp6bGUubmxoL2NsYXNzaWZpZWQvYXV0b3M0eDRzL2Fjd> XJhL2NzeGVsLz95ZWFyX19ndGU9JmFkZGVkX19ndGU9JnNlbGxlcl90eXBlPSZpc19zZWFyY2g9MSZraWxvbWV0ZXJz> X19ndGU9JnByaWNlX19ndGU9JnBsYWNlc19faWRfX2luPUVudGVyK0xvY2F0aW9uJTI4cyUyOStIZXJlJnBsYWNlc19> faWRfX2luPSZ5ZWFyX19sdGU9MjAxMiZraWxvbWV0ZXJzX19sdGU9JmtleXdvcmRzPSZpc19iYXNpY19zZWFyY2hfd2> lkZ2V0PTAmcHJpY2VfX2x0ZT0%3D

我使用request.META.get('HTTP_REFERER')在我的后端代码中获取此网址 因为这个是我的推荐人网址而不是当前版本所以我不能使用request.get_full_path

现在我只想要next的值/contact/200/10626096,但问题是我不能使用request.GET.get('next'),因为它不是当前的网址。

我不想使用split('?next=')类型的解决方案,因为我正在寻找更多的pythonic解决方案,例如request.GET.get('next')

1 个答案:

答案 0 :(得分:1)

>>> from urlparse import parse_qs
>>> parse_qs('next=/contact/200/10626096&back%3DZHViYWkuZHViaXp6bGUubmxoL2NsYXNzaWZpZWQvYXV0b3M0eDRzL2FjdXJhL2NzeGVsLz95ZWFyX19ndGU9JmFkZGVkX19ndGU9JnNlbGxlcl90eXBlPSZpc19zZWFyY2g9MSZraWxvbWV0ZXJzX19ndGU9JnByaWNlX19ndGU9JnBsYWNlc19faWRfX2luPUVudGVyK0xvY2F0aW9uJTI4cyUyOStIZXJlJnBsYWNlc19faWRfX2luPSZ5ZWFyX19sdGU9MjAxMiZraWxvbWV0ZXJzX19sdGU9JmtleXdvcmRzPSZpc19iYXNpY19zZWFyY2hfd2lkZ2V0PTAmcHJpY2VfX2x0ZT0%3D')
{'next': ['/contact/200/10626096']}