将flask的'request.get_json'dict转换为类似于multidict的'request.form`

flask_json_multidict的Python项目详细描述


Build Status

将烧瓶的request.get_jsondict转换为类似MultiDictrequest.form

这是为了维护与request.formrequest.get_json()交互的一致api而编写的。这允许使用类型强制和.getlist来利用.get

开始

使用pip install flask_json_multidict

安装模块
# Load in our dependenciesfromflaskimportFlask,request,jsonifyfromflask_json_multidictimportget_json_multidict# Start an applicationapp=Flask(__name__)defresolve_request_body():"""Before every request, resolve `request.body` from either `request.form` or `request.get_json()`"""request.body=request.formifrequest.headers['content-type']=='application/json':request.body=get_json_multidict(request)app.before_request(resolve_request_body)@app.route('/',methods=['POST'])defroot():"""Reply with POST data as we see it"""body=request.bodyreturnjsonify({key:body[key]forkeyinbody})# We can also leverage `request.body.getlist` as we do with `request.form`if__name__=='__main__':app.run()# $ curl http://localhost:5000/ -X POST --data 'hello=world'# {"hello": "world"}# $ curl http://localhost: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(请求)

get_json_multidict遍历由request.get_json()提供的json并返回MultiDict

  • 请求object-当前request由烧瓶处理

返回:

  • 正文object-包含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 parametersbody=get_json_multidict(request)body.get('foo')# None

贡献

代替正式的形式指南,注意保持现有的编码风格。为任何新的或更改的功能添加单元测试。通过nosetests进行测试。

许可证

版权所有(c)2015 underdog.io

根据麻省理工学院的许可证。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何从IBM MQ的JMSException检测可恢复错误   java Lucene6。4.2:找不到类,尝试添加查询。   Java Pdf差异库   在Java中多线程处理我的线程   java将字符串传递给Uri。下载中的parse()   java在列表中查找原语位置   java JPA条件从另一个查询中选择   java中的强制转换和转换   java如何在没有上下文的情况下获取SOAP Web服务(Apache Axis 1.4)的调用客户端的IP地址   java Android IllegalBlockSizeException:解密中最后一个块未完成   java Jersey是否要自定义无效资源路径的错误处理?   如何将JavaCVS web项目转换为基于maven的web项目?   java如何检查通用列表是否与jUnit相等?   arraylist java。util。尝试使用迭代器时发生ConcurrentModificationException错误   使用springsecurity,jsp上的java${u csrf.token}始终为空   sql使用java从临时表中选择数据   spring验证中的java@Notnull和@Pattern无效   java如何使用jQuery将包含对象数组的对象数组传递给Spring MVC控制器?