python-3.x - 使用 Python 和 uWSGI 在调用方法中触发中间件
问题描述
当我开发一个在 wsgi 上运行的应用程序时——更具体地说是在 uwsgi 上运行时,我一度感到困惑。
构建我的示例应用程序后:
class MyCustomApp():
def __call__(self, environ, start_response):
start_response('200 OK', [('Content-Type','application/json')])
return "a".encode('utf-8')
application = MyCustomApp()
一切都按预期完美运行。 我使用类而不是方法,出于其他原因我需要使用它。
现在让我们来解决问题。我正在使用名为 beaker 的中间件,如果我将我的应用程序替换为:
application = SessionMiddleware(MyCustomApp(),options)
一切正常,但我不想修改我的 call,尽管为了学习和理解。
我想做以下事情:
class MyCustomApp():
def __call__(self, environ, start_response):
start_response('200 OK', [('Content-Type','application/json')])
...
here i want to implement SessionMiddleware without modify
application = MyCustomApp()
...
return "a".encode('utf-8')
application = MyCustomApp()
但是我没有尝试,我的中间件用它的默认值替换了我的环境。我希望他们能指导我理解并尝试实现保持上述逻辑。
解决方案
推荐阅读
- java - 什么是替换只返回 false 的 if 语句墙的干净方法?
- vue.js - Vue - 强制更新 URL 中的新 id
- reactjs - InteliJ:Typescript 根据接口自动检查 {} 对象?
- amazon-web-services - 如何在不删除现有堆栈的情况下从 cloudformation 迁移到 CDK?
- tcl - 如何将 2 个列表合并为 TCL 中的键值对?
- jenkins - 在 Jenkinsfile 中的远程主机上执行 shell 命令
- ruby - 为什么我不能运行这个 ruby 文件?
- sumo - 回答命令 0xa4 错误:获取车辆变量:指定不支持的变量 0x32
- docker - Airflow 的 BashOperator 无法启动 docker-compose
- r - R 中的表格操作 - dplyr/tidyverse 解决方案