gpt4 book ai didi

python - Google App Engine 中的请求感知代码——os.environ?

转载 作者:太空宇宙 更新时间:2023-11-04 01:43:35 25 4
gpt4 key购买 nike

在 GAE 中,你可以说 users.get_current_user()使当前登录的用户隐含到当前请求中。即使同时处理多个请求,这也能正常工作——users 模块以某种方式知道 get_current_user 函数代表哪个请求被调用。我查看了开发服务器中模块的代码,它似乎使用 os.environ 来获取用户电子邮件和与当前请求关联的其他值。

这是否意味着每个请求都会得到一个独立的os.environ对象?

我需要实现一个类似于 users.get_current_user() 的服务,它会根据调用代码处理的请求返回不同的值。假设 os.environ 是要走的路,我怎么知道 GAE 已经使用(或保留)了哪些变量名称?

还有,有没有办法添加一个钩子(Hook)(或事件处理程序),在每次请求之前调用它?

最佳答案

作为the docs说,

A Python web app interacts with the App Engine web server using the CGI protocol.

这基本上意味着在任何给定进程中一次只为一个请求提供服务(尽管与真正的 CGI 不同,如果一个进程定义了 mainapp.yaml 调度到的各种模块中运行)。另见 this page , 和 this one用于 CGI 定义和使用的环境变量的文档。

App Engine 定义的 Hook 是围绕 RPC 层的调用,而不是 HTTP 请求。要在服务之前拦截每个请求,您可以使用 app.yaml 将所有请求重定向到单个 .py 文件并在该文件的 main 中执行拦截 重定向之前的函数(或者,您可以在您使用 app.yaml 调度到的每个模块中的 main 开头调用您的钩子(Hook))。

关于python - Google App Engine 中的请求感知代码——os.environ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2259727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com