flask - Flask:渲染前扩展模板
问题描述
我想为我的 Flask 应用程序提供可插拔模块。一些模块可以扩展 UI。对于这样的扩展{% block extension1 %}
,我的基本模板中有类似的块。这个想法是在属于模块的单独模板文件中实现这些块。
现在这是一个问题 - 如何指示主请求处理程序用模块的模板扩展其模板?我认为它可以在app.after_request()
方法中完成。但是我还没有找到任何方法来使用另一个文件中的部分来扩展模板
解决方案
可能是我的解决方案不是最好的,但这就是我所带来的。
base.html:
...
{% if extension_1 %}
{% include extension_1 ignore missing %}
{% endif %}
...
模块.py:
@app.before_request
def init_module():
app.jinja_env.globals.update(extension_1='module.jinja')
模块.jinja:
some content here
因此,何时extension_1
定义了适当的模板。
当多个模块同时定义时,我没有处理冲突解决extension_1
。但是当需要的时候我会来的。
推荐阅读
- amazon-web-services - AWS Glue Crawler 创建分区和文件表
- node.js - 是否可以使用 localStorage 之类的私有环境变量?
- .net - 根据 DataTable 更改 DGV 复选框状态
- r - 替换 for 循环 - R 脚本
- python-3.x - 如何在python中确定outlook项目的类型
- javascript - 从数组中删除重复的对象总是返回第 n 个索引
- grails - 如何使 grails 2 文档退出生成水平滚动条?
- c# - 使用 REST API 将 Xamarin Forms 连接到 SQL Server 2017 Management Studio
- php - 在php文件中获取解析错误
- java - 将 MySQL 数据库的特定表复制到 JDBC 中的 MariaDB 数据库