Flask的刚性MVC内容协商
项目描述
这是Holster,Flask的扩展,使得RESTful和内容协商变得简单
from flask import Flask from flask.ext.holster.main import init_holster app = Flask(__name__) init_holster(app) @app.holster("/test") def test(): from math import pi return { "data": "Hello from Holster!", "nested": { "numeric": 0, "floating": pi, "unicode": u"Espa\xf1ol", }, "secure": { "xss-sword": ';!--"<XSS>=&{()}', } } if __name__ == "__main__": app.run()
此应用程序将自动确定要返回哪种数据类型,结合用户代理参数和URL扩展。如果用户代理请求“/test.html”,则将返回HTML;但如果请求“/test.json”,则将返回JSON。不再需要担心构建具有HTML和JSON分离界面的站点;一个Holster站点可以完成所有工作!
Holster目前为以下格式提供默认渲染器
HTML
JSON
纯文本
YAML(可选的PyYAML支持以美化YAML)
这些默认渲染器主要提供启动和开发,尽管JSON和YAML渲染器可能与生产中期望的渲染器非常相似。
变更日志
0.3.4
功能:JSON渲染器可以渲染实现了__json__方法的自定义对象,以便将其转换为JSON安全的对象。
0.3.3
错误修复:在Flask 0.10和更高版本中,单个视图的多重包装导致Flask拒绝注册视图,因为内部断言被触发。
功能:"title"键现在具有特殊意义:如果渲染器支持标题的概念,它将用于内置渲染器的标题。
0.3.2
错误修复:如果自定义模板不是HTML或JSON模板,则可能不正确地未使用它们。
功能:允许“svg”作为“image/svg+xml”MIME类型的扩展。
0.3.1
错误修复:删除多余的调试语句。
0.3
兼容性:需要vcversioner以获取版本号。
兼容性:已移除手写的MIME解析器,转而使用Werkzeug中的解析器。因此,Flask-Holster变得更小,并且应该能更好地处理边缘情况。
错误修复:始终定义YAML转换。对于美观的YAML,请安装PyYAML。现在始终启用YAML输出,当PyYAML不可用时,使用JSON作为后备。PyYAML不是必需的,也不在requirements.txt中。
0.2.5
特性:现在
init_holster()
不仅适用于Flask蓝图,也适用于Flask应用。
0.2.4
错误修复:在默认HTML视图模板中正确省略列表项后的冒号(和相关递归)。
0.2.3
错误修复:允许路由装饰器中使用kwargs,包括
methods
。错误修复:以原样传递预制的响应,而不进行任何干扰。允许在通常刚性的控制器中像
redirect()
这样的操作。
0.2.2
错误修复:在
lift()
中传递名称,以正确命名重定向的路由。
0.2.1
错误修复:为“/”专门化扩展路由,以避免不规则的路由。
0.2
兼容性:不要使用itertools,适用于Python 2.5
增强:将视图封装分成两部分,以便更容易定制。
特性:新的助手模块,帮助编写自定义视图。
1.1.2
特性:更改日志
特性:文档
特性:可选的
HOLSTER_COMPRESS
设置,用于自动压缩响应数据增强:填充Vary头
变更:改进了视图对象的命名
项目详情
Flask-Holster-0.3.4.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | acbbf75cce0df474f469ed3af44199d2eb02ef519db0f6dc7e1d1ac80f538565 |
|
MD5 | 5868f559271dd3b3feb5619ad92e59dc |
|
BLAKE2b-256 | 1c7f74792c64952bd3a9640a606b8fe12bb8319245d20f29e3a86a61509cbd4e |