flask响应的多格式实现
Flask-ResponseBuilder的Python项目详细描述
以多种格式实现flask响应:base64、csv、json、xml、html、yaml。 您可以创建自己的生成器来扩展Builder类并用register_builder方法注册它。
每个构建器都注册为ResponseBuilder类的属性,因此您可以从该类调用方法 使用生成器的名称,它会自动用该生成器创建响应。
也可以通过调用静态方法使用to_me,to_dict,而无需响应。
基于pyyaml,xmltodict,dicttoxml。有关其他选项,请参阅他们的文档。
- http响应状态的装饰符204 NO_CONTENT
- 基于请求的Accept头的响应
- 基于格式参数的响应(查询字符串)
- template_或_js on:基于xhr请求的响应(不推荐:仅适用于旧的js库)
- 支持case notation checker和converter,请参见Case实用程序类。
- Transformer:用于数据表示法转换的实用程序类
快速启动
使用pip:
安装flask_response_builder。$ pip install Flask-ResponseBuilder
然后将其导入到项目中:
$ from flask_response_builder import ResponseBuilder
示例用法
app=Flask(__name__)app.config['RB_HTML_DEFAULT_TEMPLATE']='response.html'rb=ResponseBuilder(app)@app.route('/nocontent')@rb.no_contentdefnocontent():pass@app.route('/xhr')@rb.template_or_json('response.html')deftest_xhr():returndata@app.route('/onaccept')@rb.on_accept(acceptable=['application/json','application/xml'])deftest_accept():returndata@app.route('/format')@rb.on_format()deftest_format():returndata@app.route('/decorator')@rb.response('json')deftest_decorator():returndata,200,{'header':'header'}
有关高级示例用法,请参见test.py文件。
配置
- ^{tt14}$: (default: ‘application/json’)
- ^{tt15}$: (default: a list of all supported mimetypes)
- ^{tt16}$: (default: ‘utf-8’)
- ^{tt17}$: (default: None)
- ^{tt18}$: (default: ‘format’)
- ^{tt19}$: (default: None)
- ^{tt20}$: (default: None)
- ^{tt21}$: (default: True)
- ^{tt22}$: (default: True)
- ^{tt23}$: (default: ‘filename’)
- ^{tt24}$: (default: ‘;’)
- ^{tt25}$: (default: ‘”’)
- ^{tt26}$: (default: ‘excel-tab’)
- ^{tt27}$: (default: False)
- ^{tt28}$: (default: ‘ROOT’)
- ^{tt29}$: (default: ‘’)
- ^{tt30}$: (default: ‘_’)
许可证MIT