flask响应的多格式实现

Flask-ResponseBuilder的Python项目详细描述


以多种格式实现flask响应:base64、csv、json、xml、html、yaml。 您可以创建自己的生成器来扩展Builder类并用register_builder方法注册它。

每个构建器都注册为ResponseBuilder类的属性,因此您可以从该类调用方法 使用生成器的名称,它会自动用该生成器创建响应。

也可以通过调用静态方法使用to_meto_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文件。

配置

  1. ^{tt14}$: (default: ‘application/json’)
  2. ^{tt15}$: (default: a list of all supported mimetypes)
  3. ^{tt16}$: (default: ‘utf-8’)
  4. ^{tt17}$: (default: None)
  5. ^{tt18}$: (default: ‘format’)
  6. ^{tt19}$: (default: None)
  7. ^{tt20}$: (default: None)
  8. ^{tt21}$: (default: True)
  9. ^{tt22}$: (default: True)
  10. ^{tt23}$: (default: ‘filename’)
  11. ^{tt24}$: (default: ‘;’)
  12. ^{tt25}$: (default: ‘”’)
  13. ^{tt26}$: (default: ‘excel-tab’)
  14. ^{tt27}$: (default: False)
  15. ^{tt28}$: (default: ‘ROOT’)
  16. ^{tt29}$: (default: ‘’)
  17. ^{tt30}$: (default: ‘_’)

许可证MIT

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

推荐PyPI第三方库


热门话题
内存Java正在运行。jar heapdump错误   java如何在安卓画布中弯曲文本区域?   java如何在Gdx 安卓游戏编程中获得矩形的真实触碰位置?   找不到java Spring MVC控制器   在Java中使用双重检查锁定单例扩展类   java在高效的时间和内存中动态执行insert(索引、数据)、delete(索引)、getAt(索引)操作。   java 安卓 Toast和视图帮助   java协议缓冲区:从文件中读取所有序列化消息   java如何在Jackson中为参数化接口类型执行通用自定义反序列化程序   与简单的空检查相比,使用(平面)映射的java优势是什么?   异步方法seam中的java Get contextparam   jar使用相同的java运行时运行另一个java程序   java访问Spring批处理中的作业参数   java给定字符串为空或null   在h2数据库1.4中找不到java类“org.h2.fulltext.FullTextLucene”。*不适用于Lucene Core 4*   java Spring Boot在使用@enableSync时不响应任何请求   java错误:在bash上找不到或加载主类pj2   “返回对象”和“返回(对象)”之间的Java差异   java Android开发:如何使用onKeyUp?