跳转到主要内容

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 (7.5 kB 查看哈希)

上传时间

支持者