跳转到主要内容

jinja2模板渲染器,用于aiohttp.web(异步IO的HTTP服务器)

项目描述

aiohttp_jinja2

https://github.com/aio-libs/aiohttp-jinja2/workflows/CI/badge.svg https://codecov.io/gh/aio-libs/aiohttp-jinja2/branch/master/graph/badge.svg https://img.shields.io/pypi/v/aiohttp-jinja2.svg https://readthedocs.org/projects/aiohttp-jinja2/badge/?version=latest

jinja2模板渲染器,用于aiohttp.web

安装

从PyPI安装

pip install aiohttp-jinja2

开发

安装依赖项并运行测试

pip install -r requirements-dev.txt
pytest tests

使用方法

在模板渲染之前,您必须首先设置jinja2环境

app = web.Application()
aiohttp_jinja2.setup(app,
    loader=jinja2.FileSystemLoader('/path/to/templates/folder'))

导入

import aiohttp_jinja2
import jinja2

之后,您可以在您的 web-handlers 中使用模板引擎。最方便的方法是为 web-handler 装饰。

使用基于函数的 web 处理器

@aiohttp_jinja2.template('tmpl.jinja2')
def handler(request):
    return {'name': 'Andrew', 'surname': 'Svetlov'}

或者,对于 基于类的视图 <https://aiohttp.readthedocs.io/en/stable/web_quickstart.html#class-based-views>

class Handler(web.View):
    @aiohttp_jinja2.template('tmpl.jinja2')
    async def get(self):
        return {'name': 'Andrew', 'surname': 'Svetlov'}

在调用处理器时,aiohttp_jinja2.template 装饰器会将返回的字典 {'name': 'Andrew', 'surname': 'Svetlov'} 传递给名为 tmpl.jinja2 的模板,以获取生成的 HTML 文本。

如果您需要进行更复杂的处理(例如设置响应头),您可以调用 render_template 函数。

使用基于函数的 web 处理器

async def handler(request):
    context = {'name': 'Andrew', 'surname': 'Svetlov'}
    response = aiohttp_jinja2.render_template('tmpl.jinja2',
                                              request,
                                              context)
    response.headers['Content-Language'] = 'ru'
    return response

或者,再次,基于类的视图

class Handler(web.View):
    async def get(self):
        context = {'name': 'Andrew', 'surname': 'Svetlov'}
        response = aiohttp_jinja2.render_template('tmpl.jinja2',
                                                  self.request,
                                                  context)
        response.headers['Content-Language'] = 'ru'
        return response

许可

aiohttp_jinja2 在 Apache 2 许可下提供。

变更

1.6 (2023-11-18)

  • 切换到 aiohttp.web.AppKey,并废弃旧的 'static_root_url' 键。

  • 放弃 Python 3.7,添加 Python 3.12。

1.5.1 (2023-02-01)

  • 添加对 Python 3.11 的支持。

  • 放弃使用 @template 装饰非异步函数(自 0.16 版以来已弃用)。

1.5 (2021-08-21)

  • 放弃对 jinaj2 <3 的支持。添加对 3+ 的支持。

  • 在 Python 3.8+ 上不需要 typing_extensions

1.4.2 (2020-11-23)

  • 将 CHANGES.rst 添加到 MANIFEST.in 和 sdist #402

1.4.1 (2020-11-22)

  • 记录异步渲染函数 #396

1.4.0 (2020-11-12)

  • 修复 context_processors 参数的类型注解 #354

  • 将最低支持的 aiohttp 版本提升到 3.6.3,以避免 aiohttpyarl 之间的不兼容性问题。

  • 添加异步渲染支持 #393

1.3.0 (2020-10-30)

  • 从模板注解中删除 Any #343

  • 修复 aiohttp_jinja2.setup 中过滤器的类型注解 #330

  • 放弃 Python 3.5,支持 Python 3.9

1.2.0 (2019-10-21)

  • 添加类型提示 #285

1.1.1 (2019-04-25)

  • 将最低支持的 jinja2 版本提升到 2.10.1,以避免安全漏洞问题。

1.1.0 (2018-09-05)

  • 将最低支持的 aiohttp 版本提升到 3.2

  • 使用 request.config_dict 访问 jinja2 环境。它允许重用父应用程序中的 jinja 渲染引擎。

1.0.0 (2018-03-12)

  • 允许上下文处理器从父应用程序中组合 #195

0.17.0 (2018-03-12)

  • 自动将 url() jinja 函数中的 int 值转换为 str #191

0.16.0 (2018-02-12)

  • 固定到 aiohttp 3.0+

  • 废弃非异步处理器的支持

0.15.0 (2018-01-30)

  • 将中间件升级到 aiohttp 2.3+ 的新样式 #182

  • 默认对所有模板进行自动转义 #179

0.13.0 (2016-12-14)

  • 通过复制上下文处理器数据避免细微错误 #51

0.12.0 (2016-12-02)

  • 添加自动部署脚本 #46

0.11.0 (2016-11-24)

  • 添加 jinja2 过滤器支持 #41

0.10.0 (2016-10-20)

  • 将包重命名为 aiohttp-jinja2 #31

0.9.0 (2016-09-26)

  • 修复当模板未找到时 HTTPInternalServerError 中的 reason 参数 #33

0.8.0 (2016-07-12)

  • 添加了在没有上下文的情况下渲染模板的能力 #28

0.7.0 (2015-12-30)

  • 添加了装饰基于类的视图(在 aiohttp 0.20 中可用)的能力 #18

  • 将 aiohttp 的要求升级到 0.20.0+

0.6.2 (2015-11-22)

  • 使 render_string 协程的 app_key 参数可选

0.6.0 (2015-10-29)

  • 修复中间件中的错误(遗漏的协程装饰器) #16

  • 放弃 Python 3.3 的支持(切换到 aiohttp 版本 v0.18.0)

  • 通过向 setup() 添加参数简化上下文处理器的初始化 #14

0.5.0 (2015-07-09)

  • 引入上下文处理器 #14

  • 绕过 StreamResponse #15

0.4.3 (2015-06-01)

  • 修复分发构建:添加清单文件

0.4.2 (2015-05-21)

  • 在控制台输出中使 HTTPInternalServerError 异常更详细 #48

0.4.1 (2015-04-05)

  • 更新文档

0.4.0 (2015-04-02)

  • 添加 render_string 方法

0.3.1 (2015-04-01)

  • 不允许非映射上下文

  • 修复微小的文档问题

  • 更改库徽标

0.3.0 (2015-03-15)

  • 发布文档

0.2.1 (2015-02-15)

  • 修复 render_template 函数

0.2.0 (2015-02-05)

  • 迁移到 aiohttp 0.14

  • 向模板装饰器添加 status 参数

  • 删除可选的 response 参数

0.1.0 (2015-01-08)

  • 初始发布

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

aiohttp-jinja2-1.6.tar.gz (53.1 kB 查看哈希值)

上传时间 源代码

构建分发

aiohttp_jinja2-1.6-py3-none-any.whl (11.7 kB 查看哈希值)

上传时间 Python 3

支持