我从python开始,所以我可以犯错误我喜欢python的框架理智,我需要一个模板引擎,我更喜欢使用jinja2。
我找到了两种用于理智的扩展: 1. https://github.com/yunstanford/jinja2-sanic 2. https://github.com/lixxu/sanic-jinja2
在Jinja2文档上,我看到Jinja可以使用特定选项" Enable_async = true"在环境对象上的特定选项上使用,然后使用" render_async()"。因此,可以在异步模式下使用本地Jinja。
第一个问题:为什么使用扩展名?Jinja的语法很容易。
第二个问题:我已经检查了扩展名的代码,并且在Jinja中的特殊语法异步上没有找到参考。我不是SUR,但我认为扩展名在同步模式下使用Jinga。如果是真的,为什么?
第三个问题:我检查了jinja2代码,似乎模板文件正常读取,而不是使用异步方法(例如AIOFILES)。所以,我不明白异步模式在哪里...
感谢您的帮助
异步支持从版本2.9开始,Jinja2还支持python async并等待结构。就模板设计人员而言,此功能对他们来说是完全不透明的,但是作为开发人员,您应该意识到它如何实现,因为它会影响您可以安全地暴露于模板环境的哪种类型的API。
像其他人一样,您可以在等待语法中包装封锁代码。 从jinja2导入模板 impoty asyncio
async def generate_jinja_template():
t = Template("Hello {{ something }}!")
t.render(something="World")
return t
event_loop = asyncio.get_event_loop()
try:
event_loop.run_until_complete(
generate_jinja_template()
)
finally:
event_loop.close()