我希望将斜杠后的WHOLE URL传递给脚本。如果我这样做:
url(r'^(?P<id>.*)$', alias.get, name="alias"),
然后我只获取路径组件而不是传递给我的函数的查询参数。然后我必须:
def urlencode(dict) : if len(dict) == 0 : return "" params = {} for k, v in dict.items() : params[k] = v.encode('utf-8') return "?" + urllib.urlencode(params) def get(id) : id += urlencode(request.GET)
我这样做是为了我的很多观点,我一直忘记它并制造错误。有没有办法告诉我的urls.py匹配包括查询字符串在内的所有内容?
答案 0 :(得分:3)
在您的视图中,您可以获取包含request.get_full_path()
的查询字符串的网址。
如果您想要加入http://servername.com部分,还有request.build_absolute_uri()
。
答案 1 :(得分:1)
不,没有办法做到这一点。 GET参数不会传递给urls.py。
我想知道为什么你需要这样做。为什么你的很多观点都依赖于GET查询字符串?为什么不使用Django的做事方式,即将参数作为URL本身的一部分,而不是作为查询字符串。