在Google App Engine(Python)中如何在RequestHandler外部获取请求URI
在一个叫做webapp.RequestHandler的类里面,我可以用self.request.uri
来获取请求的地址。但是在这个RequestHandler之外,我就无法访问这个地址了,所以没办法。有谁有什么好主意吗?
我正在使用Python,而且我对它和GAE都还很陌生。
2 个回答
0
既然在代码处理之外使用请求是没有意义的,我想你是希望从某个处理程序调用的方法中访问它,而不想把请求传递给这个方法。你可以选择:
- 重构代码,把请求传递给这个方法。
- 如果重构不行,可以用一个小技巧,定义一个全局的
threading.local()
,在请求处理程序中存储请求,然后在你的方法中访问它。
2
一般来说,你应该在某种请求处理器(RequestHandler)里完成所有操作,或者在你使用的非WebApp框架中找到类似的东西。不过,如果你真的坚持要用早期90年代的方式,写一些普通的CGI脚本,那么环境变量SERVER_NAME和PATH_INFO可能就是你需要的;想了解更多信息,可以查阅CGI的相关资料。