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 |