一个模块,它试图直接从url加载相应的模板,而无需为每个url编写视图。

canonicalwebteam.templatefinder的Python项目详细描述


模板查找器

TemplateFinderTemplateView的扩展,它试图 直接从url加载相应的模板,无需 为每个url编写一个视图。

它可以直接加载html模板,或者解析 包含“包装模板”FrontMatter密钥。

用法

要在Flask应用程序中注册模板查找器,需要在应用程序配置中注册模板文件夹,并指定应由其处理的路由。 下面的示例将通过templatefinder处理所有内容:

from canonicalwebteam.templatefinder import TemplateFinder

TEMPLATE_FOLDER = 

app = Flask(
    template_folder="templates",
    static_folder="static",
)
app.config["TEMPLATE_FOLDER"] = "templates"

template_finder_view = TemplateFinder.as_view("template_finder")
app.add_url_rule("/", view_fun  c=template_finder_view)
app.add_url_rule("/<path:subpath>", view_func=template_finder_view)

模板匹配

templatefinder可用于自动将.html.md文件映射到网站上的url。 包含后,finder将在指定模板目录中的给定url处搜索文件。

例如,localhost/pages/test将按顺序查找以下文件:

  • $TEMPLATE_FOLDER/pages/test.html
  • $TEMPLATE_FOLDER/pages/test/index.html
  • $TEMPLATE_FOLDER/pages/test.md
  • $TEMPLATE_FOLDER/pages/test/index.md

标记解析

如果TemplateFinder遇到标记文件(结束于.md),则 将在YAML frontmatter中查找以下键:

  • wrapper_template强制:(例如: wrapper_template: includes/markdown-wrapper.html)指向 用于放置已分析标记内容的HTML模板。 此路径必须与烧瓶的template_folder根相对
  • context可选:(例如: context: {title: "Welcome", description: "A welcome page"})一个 要传递到的额外键/值对字典 模板上下文。
  • markdown_includes可选:(例如:markdown_includes: {nav: }) 键名到指向标记文件的模板路径的映射 包括在内。将分析每个模板路径,生成的html 将在模板上下文中的相关键下传递。 路径必须相对于烧瓶的template_folder根。

下面是一个标记文件示例:

---
wrapper_template: "includes/markdown-wrapper.html"
markdown_includes:
  nav: "includes/nav.md"
context:
  title: "Welcome"
  description: "A welcome page"
---

Welcome to my website.

## GitHub

I also have [a GitHub page](https://github.com/me).

测试

可以使用pytest运行测试:

pip3 install -r requirements.txt
python3 -m pytest test

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何修改打印板?   java Spring批处理JdbcCursorItemReader还是RepositoryItemReader?   java如何在JTable Swing中增加标题列的字体?   java在数组方面遇到问题,导致表达式非法启动   java如何为maven pom的某些部分关闭Eclipse代码格式化程序。xml   java Dropwizard登录代码   java Jersey 2.22:客户端的默认连接超时是多少?   java无法自动连接字段:javax。sql。数据来源   如何从java中的行列表中获取单词列表?   java JDBC批量更新和处理异常?   计算大根:bigdecimal/java   java如何在JavaCC语法中提到trycatch块   javasocket。getInetAddress()不返回任何内容   oracle SQL开发人员错误无法找到Java虚拟机   java我如何计算和显示未来5年每一年的投资价值   java如何关闭浏览器选项卡?   java如何在showMessageDialog中打印双2D数组?   java从站点抓取播放列表URL?   selenium中的java点击css按钮