axum 中使用模板引擎

利用模板引擎,我们不需要再把 HTML 代码写在 Rust 代码中了,而是将其独立保存为*.html文件。既方便维护,也有利用开发。

首先,我们在项目根目录创建一个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)]
#[template(path = "index.html")]
pub struct IndexTemplate {
    pub name: String,
}

其中

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

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

使用模板

过滤器

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

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