我可以在django中间件中获取原始查询字符串吗?

时间:2012-02-28 11:26:39

标签: django

具体来说,我的中间件有兴趣区分GET请求:

  1. /管理/应用程序/模型/ <?/ LI>
  2. /管理/应用程序/模型/
  3. 网址#1以悬空问号启动。 从我的实验中,django的HttpRequest吞并了它,我无法区分这两者。有没有办法获取原始的非过滤查询字符串?

2 个答案:

答案 0 :(得分:1)

?应该转发为%3F。那么,你可能应该选择另一个符号,没有这样的问题吗?

答案 1 :(得分:1)

这可能是不可能的。通常,django应用程序是从WSGI接口后面提供的,当请求到达django时,它已经被解析为PATH_INFO(在?之前)和QUERY_STRING(在?之后)。当django运行get_full_path时,它只是将这两个东西连接起来?如果需要,在中间。

这也是一个坏主意:HTTP不期望URL的行为与尾随行为不同,因为这只是一组空的参数,这与缺少一个?相同。手段。除了令人困惑之外,这可能会导致互操作性问题,因为代理或Web浏览器可能会丢失尾随的“?”期望它应该没有效果。