将Flask的`request.get_json`字典转换为类似`request.form`的多字典
项目描述
将Flask的request.get_json字典转换为类似MultiDict的request.form
这是为了保持与request.form和request.get_json()交互的API一致性。这使得可以使用.get进行类型强制转换和.getlist。
入门指南
使用以下命令安装模块:pip install flask_json_multidict
# Load in our dependencies
from flask import Flask, request, jsonify
from flask_json_multidict import get_json_multidict
# Start an application
app = Flask(__name__)
def resolve_request_body():
"""Before every request, resolve `request.body` from either `request.form` or `request.get_json()`"""
request.body = request.form
if request.headers['content-type'] == 'application/json':
request.body = get_json_multidict(request)
app.before_request(resolve_request_body)
@app.route('/', methods=['POST'])
def root():
"""Reply with POST data as we see it"""
body = request.body
return jsonify({key: body[key] for key in body})
# We can also leverage `request.body.getlist` as we do with `request.form`
if __name__ == '__main__':
app.run()
# $ curl https://:5000/ -X POST --data 'hello=world'
# {"hello": "world"}
# $ curl https://:5000/ -X POST -H 'Content-Type: application/json' --data '{"hello": "world"}
# {"hello": "world"}
文档
flask-json-multidict可以通过flask_json_multidict导入。
flask_json_multidict.get_json_multidict(request)
get_json_multidict遍历request.get_json()提供的json,并返回一个MultiDict。
request 对象 - 当前由Flask处理的request
返回值
- body 对象 - 包含json信息的MultiDict
- 如果有任何词典或嵌套列表,则这些参数将被忽略
这是为了与 request.form 的行为保持一致
# Assume we receive `{"colors": ["red", "blue"]}`
body = get_json_multidict(request)
body.getlist('colors') # ['red', 'blue']
# Assume we receive `{"hello": "world"}`
body = get_json_multidict(request)
body.['hello'] # 'world'
body.get('hello') # 'world'
# Assume we receive `{"foo": {"bar": "baz"}}`
# This is the silent ignore of bad parameters
body = get_json_multidict(request)
body.get('foo') # None
贡献
在没有正式风格指南的情况下,请务必保持现有的编码风格。为任何新功能或更改的功能添加单元测试。通过 nosetests 进行测试。
许可证
版权(c)2015 Underdog.io
许可协议:MIT
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源代码分布
flask_json_multidict-1.0.0.zip (24.0 kB 查看哈希值)
flask_json_multidict-1.0.0.tar.gz (11.0 kB 查看哈希值)
关闭
flask_json_multidict-1.0.0.zip 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c45c25d1c2a439999626c645daa8dfc251de4a1e0718de3eb118b57ca9125495 |
|
MD5 | 1235a4c1ec9b1df3754c40e1bc8eb8e1 |
|
BLAKE2b-256 | f214f301f084d3ad70b995a7fe62e1aa3caacc460e4b810ff0e8d6868805318b |
关闭
flask_json_multidict-1.0.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 26234ff1dd6020b0c2d671b85b2bd3887724be6e18aa36957ede332f9f6ef6b7 |
|
MD5 | 7d7eece96d522ad7847113d9bf5b25fc |
|
BLAKE2b-256 | 47d4ee55bc2e7e1608c563b2dc61bb45c4807c5dfc826a777b4a9085b0f3533f |