支持Muffin框架的Jinja2模板
项目描述
Muffin-Jinja2 – 支持为 Muffin 框架提供Jinja2模板
要求
python >= 3.9
安装
Muffin-Jinja2 应使用pip安装
pip install muffin-jinja2
使用
import muffin
import muffin_jinja2
# Create Muffin Application
app = muffin.Application('example')
# Initialize the plugin
# As alternative: jinja2 = Jinja2(app, **options)
jinja2 = muffin_jinja2.Plugin()
jinja2.setup(app, template_folders=['src/templates'])
# Use it inside your handlers
@app.route('/')
async def index(request):
context = {'var': 42}
return await jinja2.render('index.html', **context)
选项
名称 |
默认值 |
描述 |
auto_reload |
False |
自动重新加载更改的模板 |
cache_size |
50 |
缓存模板 |
extensions |
None |
启用Jinja2扩展 (None | list) |
loader |
FileSystemLoader |
模板加载器 |
encoding |
utf-8 |
文件加载器的默认编码 |
template_folders |
['templates'] |
模板文件夹列表 |
您可以在初始化插件时提供选项
jinja2.init(app, template_folders=['src/templates'], auto_reload=True)
或者,在 Muffin.Application 配置中设置它,例如使用 jinja2_ 前缀
JINJA2_AUTO_RELOAD = True
JINJA2_TEMPLATE_FOLDERS = ['tmpls']
Muffin.Application 配置选项不区分大小写
调整
# Register custom context processor
# could be a function/coroutine
@jinja2.add_context
def custom_context():
return { 'VAR': 'VALUE' }
# Register a function into global context
@jinja2.add_global
def sum(a, b):
return a + b
# Register a function with a different name
@jinja2.add_global('div')
def mod(a, b):
return a // b
# Register a filter
@jinja2.add_filter
def test(value, a, b=None):
return a if value else b
# Register a filter with a different name
@jinja2.add_filter('bool')
def boolean(value):
return bool(value)
@app.route('/')
async def index(request):
""" Check for user is admin. """
local_context = {'key': 'value'}
return await jinja2.render('index.html', **local_context)
错误跟踪器
如果您有任何建议、错误报告或烦恼,请通过https://github.com/klen/muffin-jinja2/issues的问题跟踪器报告。
贡献
Muffin-Jinja2的开发地点为:https://github.com/klen/muffin-jinja2
贡献者
klen (Kirill Klenov)
许可证
在MIT许可证下发布。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分发
muffin_jinja2-1.8.1.tar.gz (5.0 kB 查看散列)
构建分发
muffin_jinja2-1.8.1-py3-none-any.whl (5.3 kB 查看散列)
关闭
muffin_jinja2-1.8.1.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 20dd5c7842aed4c796f061aacfd826fce0b07598a47e5e9ca1cca6c95d208083 |
|
MD5 | 9271b81ada8eed99a9aae62e32ef7b66 |
|
BLAKE2b-256 | 500346606703d026578df334106f72ea5cc32f4bc0244bfa150f783f1d9ea1fd |
关闭
muffin_jinja2-1.8.1-py3-none-any.whl的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 7e2fab285c414c303af18527931f85051e95e6ad91006c1b4bb8a25cfccd5e99 |
|
MD5 | b920da4d8c74b344e034a3d225b2f2db |
|
BLAKE2b-256 | 409636ae1f0ad5527f30856a8d177e29116ba1a214330e860b3cfd6c126f59da |