gpt4 book ai didi

python - Tornado:是否有请求过滤器?

转载 作者:太空宇宙 更新时间:2023-11-04 10:21:14 26 4
gpt4 key购买 nike

我正在查看 Tornado 应用程序并想知道如何让它执行我的用例。我需要在分派(dispatch)到 URL 处理程序之前拦截每个请求并可能返回重定向。有没有办法使用 Tornado 做到这一点?

我想知道 Tornado 是否有类似 servlet 过滤器的概念。看起来可能是 input modifier decode_argument做这样的事情?使用该方法过滤请求似乎有点麻烦,但我没有在文档中找到任何其他内容。

最佳答案

您至少有 3 个选择:

  • 使用 RequestHandler.prepare() 作为 kamushin said .

  • this tornado issue comment 中所述:

    You can hook up middleware, actually. HTTPServer request handlers are just callable objects (function, methods, or objects that implement __call__). You can write your own handler that passes on requests to your Application

(例子)

my_app = tornado.web.Application(...)

def middleware(request):
# do whatever transformation you want here
my_app(request)

if __name__ == '__main__':
http_server = tornado.httpserver.HTTPServer(middleware)
# ...

但请注意:

Since Tornado request handling can be asynchronous, you can't modify the response in your middleware, but you can at least work with the request.

  • 使用装饰器。参见 this exaemple有关如何实现的详细信息。

  • 尝试tornado-middlewaretmiddleware .要小心,因为它们已经 3 岁了,可能无法正常工作。但您始终可以查看他们的代码并从中学习。

关于python - Tornado:是否有请求过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32194893/

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