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



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

  1. /admin/app/model/
  2. /admin/app/model/

URL#1是用一个悬空的问号启动的。从我的实验来看,django的HttpRequest将其吞噬,我无法区分两者。有没有一种方法可以获得未经过滤的原始查询字符串?

?应作为%3F转义。所以,也许你应该选择另一个符号,没有这样的问题?

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

这也是一个坏主意:HTTP不希望URL在带有尾随?的情况下表现得不同?,因为这只是意味着一组空的参数,这和没有参数是一样的吗?方法这不仅令人困惑,还可能导致互操作性问题,因为代理或web浏览器可能会删除尾部的"?"期望它不会产生任何效果。

最新更新