werkzeug相关内容

在Odoo的Controlers.py文件中,如何获取POST请求体中的json字符串?

我在Controlers.py文件中定义了一个类来接收HTTP请求。远程服务器发送POST请求,请求正文中的数据是JSON字符串。 我可以通过http.request.jsonrequest方法将JSON字符串直接转换成字典来获取请求体中的数据,但目前我需要直接获取请求体中的原始JSON字符串,而不是字典中的原始JSON字符串来验证签名。 无法使用直接转换为JSON字符串的方法(jso ..
发布时间:2022-03-12 22:01:08 Python

在 Flask 单元测试中,如何模拟请求全局“g"对象上的对象?

我有一个烧瓶应用程序,它在 before_filter 中设置数据库连接,非常类似于 这个: @app.before_requestdef before_request():g.db = connect_db() 现在:我正在编写一些单元测试,但我确实不希望它们进入数据库.我想用可以设置期望的模拟对象替换 g.db. 我的测试使用 app.test_client(),正如烧瓶文档 这里. ..
发布时间:2022-01-08 22:21:08 Python

在 Python 中获取数组作为 GET 查询参数

我知道在 php 中,我可以只使用 $_GET['key1']['key2'] 来检索以数组形式发送的 GET 数据,但在 Python 中可以这样做吗因为我刚收到一个字符串,它不被识别为数组/列表. 如果重要的话,我会使用flask/werkzeug. 解决方案 参数名称的深度解析是 PHP AFAIK 独有的. 如果您只需要一个简单的列表,只需传递几个具有相同名称的参数并使 ..
发布时间:2022-01-05 15:54:27 Python

Flask 和 Werkzeug:使用自定义标头测试发布请求

我目前正在根据 http://flask.pocoo.org/docs 的建议测试我的应用/testing/,但我想向发布请求添加标头. 我的请求目前是: self.app.post('/v0/scenes/test/foo', data=dict(image=(StringIO('fake image'), 'image.png'))) 但我想在请求中添加一个 content-md5. ..
发布时间:2021-12-14 11:19:40 Python

在 werkzeug 请求中检索 url 锚点

我有一个 DAV 协议,可以在 url 锚点中存储带外数据,例如DELETE/abc.def#ghi 中的 ghi.服务器是一个 Flask 应用程序. 我可以看到请求通过 tcpdump 传入网络,但是当我查看 werkzeug 请求对象(例如 url() 或 base_url())时,我得到的只是 /abc.def.#ghi 已被删除. 是否有返回此信息的方法,或者我是否必须对 R ..
发布时间:2021-12-14 11:18:34 其他开发

如何在 Flask 中安全地获取用户的真实 IP 地址(使用 mod_wsgi)?

我在 mod_wsgi/Apache 上设置了一个 Flask 应用程序,需要记录用户的 IP 地址.request.remote_addr 返回“127.0.0.1",此修复尝试纠正但我发现 Django 出于安全原因删除了类似的代码. 是否有更好的方法来安全地获取用户的真实 IP 地址? 编辑:也许我遗漏了一些明显的东西.我应用了 werkzeug's/Flask's fix 但似 ..
发布时间:2021-12-14 11:10:38 Python

Flask 开发服务器中静态文件的 URL 路由冲突

我想定义一个包含三个变量组件的 url 规则,例如: @app.route('////') 但我发现开发服务器在尝试匹配静态文件之前会评估这些规则.所以像: /static/images/img.jpg 将被我的 url 规则捕获,而不是被转发到内置的静态文件处理程序.有没有办法强制开发服务器先匹配静态文件? 附言只有当规则有两个以上的变量组件时,这才是一个问题. 解决方案 ..
发布时间:2021-12-14 11:01:12 Python

Flask 重新加载器因“没有名为 Scripts\flask 的模块"而崩溃;在 Windows 上

当我在 Windows 上运行 flask run 时,出现以下错误 C:\Python37\python.exe:没有名为 C:\Python37\Scripts\flask 的模块 这以前有效,问题是在我最近创建新环境后开始的. 解决方案 这是一个错误 在 Werkzeug 0.15.5 中引入.至少升级到 Werkzeug 0.15.6,其中包含修复程序.您也可以使用 pytho ..
发布时间:2021-12-14 10:54:01 Python

基于子域路由的 Flask 应用程序

我希望将我的顶级域作为对应于我网站不同部分的各种子域的门户.example.com 应该路由到 welcome.html 模板.eggs.example.com 应该路由到站点的“eggs"子部分或应用程序.我将如何在 Flask 中实现这一目标? 解决方案 @app.route() 使用 subdomain 参数来指定路由匹配的子域.Blueprint 也需要一个 subdomain 参 ..
发布时间:2021-12-14 10:52:22 Python

Flask url_for 生成 http URL 而不是 https

我正在使用 url_for 在用户注销时生成重定向 URL: return redirect(url_for('.index', _external=True)) 但是,当我将页面更改为 https 连接时,url_for 仍然给我 http. 我想明确要求 url_for 在 URL 的开头添加 https. 你能告诉我如何改变它吗?我查看了 Flask 文档,但运气不佳. ..
发布时间:2021-12-14 10:34:47 Python

无论 Content-Type 标头如何,都可以在 Python Flask 中获取原始 POST 正文

之前,我问了如何获取 Flask 请求中收到的数据,因为 request.data 为空.答案解释了 request.data 是原始帖子正文,但如果解析表单数据,它将为空.如何无条件获取原始帖子正文? @app.route('/', methods=['POST'])定义解析请求():data = request.data # 某些情况下为空# 这里总是需要原始数据,而不是解析的表单数据 解 ..
发布时间:2021-12-14 10:25:08 Python

在 Flask 路由中捕获任意路径

我有一个简单的 Flask 路由,我想捕获文件的路径.如果我在规则中使用 ,它适用于 /get_dir/one 但不适用于 /get_dir/one/two.如何捕获任意路径,以便将 path='/one/two/etc 传递给视图函数? @app.route('/get_dir/')def get_dir(路径):返回路径 解决方案 使用 path 转换器捕获任意长度的路径: 将捕获一个p ..
发布时间:2021-12-14 10:22:57 Python

使用 Flask for Python 获取访问者的 IP 地址

我正在制作一个网站,用户可以使用 Flask 微框架登录并下载文件(基于 Werkzeug),它使用 Python(在我的情况下为 2.6). 我需要在用户登录时获取其 IP 地址(用于登录目的).有谁知道如何做到这一点?肯定有办法用 Python 做到这一点吗? 解决方案 查看如何访问Request 对象 然后从这个相同的Request 对象中获取属性remote_addr. ..
发布时间:2021-12-14 10:20:11 Python

X-Forwarded-Proto 和 Flask

我遇到了与 this SO question and answer 中描述的完全相同的问题.这个问题的答案是一个很好的解决方法,但我不理解根本问题.在负载均衡器上终止 SSL 并在负载均衡器和 Web/应用服务器之间使用 HTTP 是很常见的.堆栈的哪一部分不尊重 X-Forwarded-Proto?是werkzeug吗?烧瓶?uwsgi? 就我而言,我使用的是 AWS ELB(设置 X-F ..
发布时间:2021-12-13 21:46:50 Python

104, 'Connection reset by peer' 套接字错误,或何时关闭套接字会导致 RST 而不是 FIN?

我们正在并行开发 Python 网络服务和客户端网站.当我们从客户端向服务发出 HTTP 请求时,一次调用始终在 socket.py 中引发 socket.error,在读取中: (104, '连接重置') 当我用wireshark收听时,“好"和“坏"的反应看起来非常相似: 由于 OAuth 标头的大小,请求被拆分为两个数据包.服务以 ACK 响应两者 服务发送响应,每个标头一个数据 ..
发布时间:2021-12-11 11:18:30 Python

将 Flask 开发服务器配置为在整个网络中可见

我不确定这是否是 Flask 特有的,但是当我在开发模式 (http://localhost:5000) 下运行应用程序时,我无法从网络上的其他机器访问它(使用 http://[dev-host-ip]:5000).例如,当 Rails 处于开发模式时,它运行良好.我找不到任何关于 Flask 开发服务器配置的文档.知道应该配置什么来启用它吗? 解决方案 虽然这是可能的,但您不应在生产中使 ..
发布时间:2021-11-30 23:26:46 Python