域名 AXUM.RS 将于2025年10月到期。我们无意再对其进行续费,我们希望你能够接续这个域名,让更多 AXUM 开发者继续受益。
  • 方案1️⃣AXUM.RS 域名 = 3000
  • 方案2️⃣方案1️⃣ + 本站所有专题原始 Markdown 文档 = 5000
  • 方案3️⃣方案2️⃣ + 本站原始数据库 = 5500
如果你有意接续这份 AXUM 情怀,请与我们取得联系。
说明:
  1. 如果有人购买 AXUM.RS 域名(方案1️⃣),或者该域名到期,本站将启用新的免费域名继续提供服务。
  2. 如果有人购买了 AXUM.RS 域名,且同时购买了内容和/或数据库(方案2️⃣/方案3️⃣),本站将关闭。届时我们或许会以另一种方式与你再相遇。

axum 中使用模板引擎

首先,我们在项目根目录创建一个templates目录,并在这个目录创建一个index.html文件,内容如下:

<!DOCTYPE html>
<html lang="zh-Hans">
  <head>
    <meta charset="UTF-8" />
    <title>axum.rs</title>
  </head>
  <body>
    <p>你好,<strong>{{ name }}</strong></p>
  </body>
</html>

其中的 {{ name }} 是模板引擎的指令,用于将变量等数据显示在页面上。

创建模板对应的结构体

为了让模板与 rust 相关联,我们需要对刚刚创建的templates/index.html模板创建一个对应的结构体:

其中

  • #[derive(Template)]:是让我们的结构体实现 askama::Template,这样就可以方便调用模板的方法。

  • #[template(path = "index.html")]:指定关联的模板文件。 askama 默认会去项目根目录的 templates/ 目录下查找指定的模板文件。

#[derive(Template)]:是让我们的结构体实现 askama::Template,这样就可以方便调用模板的方法。

#[template(path = "index.html")]:指定关联的模板文件。 askama 默认会去项目根目录的 templates/ 目录下查找指定的模板文件。

使用模板

更多模板指令

我们只使用了一个指令,就是将变量显示在页面上。askama 支持非常多的模板指令,比如:formatch过滤器if子模板block等。完整内容你可以在askama 文档中查看。

askama 提供了一些实用的过滤器,比如 safe:直接显示 HTML 代码,而不是显示转义过后的代码。更多过滤器,你可以在这里找到。

本章讨论模板引擎,你可以在代码库中找到完整代码。

要查看完整内容,请先登录