jinja2模板渲染器,用于aiohttp.web(异步IO的HTTP服务器)
项目描述
aiohttp_jinja2
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,以避免 aiohttp 和 yarl 之间的不兼容性问题。
添加异步渲染支持 #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)
初始发布
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。