- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
使用 Flask,我想获得裸露的 wsgi.input 引用。查看代码,似乎有不止一种方法可以做到这一点,这两种方法都出现在:
werkzeug.wsgi.get_input_stream(environ, safe_fallback=True):
...
if environ.get('wsgi.input_terminated'):
return stream
...
if content_length is None:
return safe_fallback and _empty_stream or stream
...
令人恼火的是,我无法弄清楚如何让这两种情况中的任何一种发生(文档中几乎没有提到它们)。
wsgi.input_terminated:我知道如果我使用像 Apache 这样的合适的服务器我可以设置 wsgi 环境,但是我如何在 Flask 开发服务器下设置它,因为 Werkzeug 在 werkzeug.serving 中硬编码了它的 wsgi 环境。 make_environ()?
safe_fallback:完全搞不懂……如果它只是自己调用而从未传递,这个参数在这里做什么?我该如何激活它?
这里很可能遗漏了一些简单的东西......
最佳答案
这是@javabrett 在他对@ddzialek 的回答的评论中建议的函数的更详细版本。这在设置标志之前检查分块输入(我不认为这是必要的,但设置一个你可能不需要的标志似乎不是一个好主意)。
@app.before_request
def handle_chunking():
"""
Sets the "wsgi.input_terminated" environment flag, thus enabling
Werkzeug to pass chunked requests as streams; this makes the API
compliant with the HTTP/1.1 standard. The gunicorn server should set
the flag, but this feature has not been implemented.
"""
transfer_encoding = request.headers.get("Transfer-Encoding", None)
if transfer_encoding == "chunked":
request.environ["wsgi.input_terminated"] = True
实际通过的“传输编码”的值可能是 Unicode 而不是 ASCII,因此“u'chunked'”会更准确——但对于 ASCII 范围内的字符,差异是无关紧要的( Python 将以任何一种方式匹配字符串),并且 Python 3 不需要“u”。
编辑:重要的是要注意一些 WSGI 服务器不再需要此修复。具体来说,gunicorn
从 20.0 版开始就尊重 wsgi.input_terminated
标志,但应该注意的是 20.0 是第一个不支持 Python 2.x 的版本——因此,如果您无法使用 Python 2.x,您仍然需要此修复程序。
关于python - 如何在 Flask 中获取裸 wsgi 流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31007124/
我对 Lift Cookbook for AJAX Forms 感到困惑,我遇到了以下对象声明: object EchoForm extends { 这很令人困惑,所以我尝试了一下,它编译得很好。我的
我正尝试按照指示在裸 CSS 模态窗口内实现视频 here到目前为止效果很好。我遇到的唯一问题是视频在模态窗口打开之前自动启动(我必须保留视频“自动启动”选项)。模态窗口关闭时视频也不会停止。 是否有
同样,裸 char16_t 是有符号的还是无符号的?是否定义了实现? 最佳答案 来自标准(C++11 前草案 n3290,或 C++11 后草案 n3337)§3.9.1 基本类型: Types ch
我使用 C# 编程已经...有一段时间了。我最近编写了一个例程,我突然想到这是我第一次(我记得)我故意使用裸代码块(即没有前面的控制流语句)。代码看起来像这样: //... var output =
我最近开始使用 nativescript,但我遇到了一个似乎无法解决的问题。 我想要完成的是只打开一个基本的 WebView 并设置一个外部 url 来加载,例如 stackoverflow.com。
我通过以下方式创建了一个共享仓库: git init --bare my_project.git 在某个时候,另一个用户用他的更改更新了这个 repo(使用 git push )。 我如何检查共享存储
我刚刚浏览完 Google 搜索结果,其中包含所有关于 git 无法克隆空存储库是多么愚蠢的电子邮件咆哮。一些善良的灵魂甚至提交了一个补丁。在升级 git 之前,克隆空的、裸 git 存储库的最简单、
我喜欢编写一些 wordpress 模板,并搜索了一些可用的裸模板,我可以从这些模板开始。 因为我是 wordpress 的新手,你能推荐最好的裸模板作为我可以使用的基础吗? 干杯 最佳答案 在我看来
我正试图找到一个最新的答案,以使用 Godaddy 和 Heroku SSL 设置裸域。我的目标是让所有页面都登陆安全页面 https://www.example.com https://www.ex
这个问题在这里已经有了答案: What's the -practical- difference between a Bare and non-Bare repository? (11 个答案) 关
我运行一个 git 服务器,它只包含裸远程。比如说,我有一个名为 DIG.git 的裸 Remote ,我通常使用它进行克隆: git clone 55.66.77.88:git/DIG.git 我想
是否有一个用于裸 git repo 目录的 GUI(任何地方都没有工作树)我可以: 检查日志 查看任何提交的整个工作树结构 关于我为什么需要这个: 我的 git 是这样初始化的: git --git-
我有一台服务器托管我的几个项目的“裸”GIT 存储库。 我想知道如何将 GIT 移动到另一台服务器? 最佳答案 只需将父目录复制到新机器,并让 check out 的副本使用 git remote s
我有一个域 example.com 和 www.example.com。我正在为 DNS 使用 Heroku 和 Zerigo。现在我有一个从根域到 www.example.com 的转发从我的 Ho
我的服务器已经在 TCP 端口 80 和 443 上运行 IIS。我想通过 Internet 为我的所有团队成员提供一个集中的“推/pull ”Git 存储库。 所以我应该使用 HTTP 或 HTTP
裸露的 SUM 和包裹在 CALCULATE 中的 sum 有什么区别? Measure1 = SUM( tab[col1]) ) Measure2 = CALCULATE ( SUM( tab[co
我是一名优秀的程序员,十分优秀!