模板过滤器
Jinja2模板语言支持多种过滤器,用于处理模板中的变量。过滤器可以对变量进行格式化、截取、转换等操作。下面是一些常用的Jinja2模板过滤器:
- 'safe'过滤器:用于将字符串标记为安全,避免被转义。
- 'capitalize'过滤器:用于将字符串的首字母大写。
- 'lower'过滤器:用于将字符串转换为小写。
- 'upper'过滤器:用于将字符串转换为大写。
- 'truncate'过滤器:用于截取字符串的前n个字符。
- 'default'过滤器:用于在变量为None时设置默认值。
下面是一个使用Jinja2模板过滤器的示例:
代码语言:javascript复制<!-- index.html -->
<!DOCTYPE html>
<html>
<head>
<title>Hello World</title>
</head>
<body>
<h1>Hello, {{ name|capitalize }}!</h1>
</body>
</html>
在上面的示例中,我们使用了'capitalize'过滤器将变量'name'的首字母大写。
Flask静态文件
在Web应用程序中,静态文件(如CSS、JavaScript和图像)通常需要被多个页面共享。为了提高效率,我们可以将这些静态文件放在一个目录中,并在页面中使用相对URL来引用它们。Flask提供了一个'static'目录用于存放静态文件。默认情况下,Flask将'static'目录放置在应用程序包的根目录下。我们可以使用Flask提供的'static_url_path'和'static_folder'选项来自定义静态文件目录的位置和名称。下面是一个自定义静态文件目录的示例:
代码语言:javascript复制from flask import Flask
app = Flask(__name__, static_url_path='/static_files', static_folder='static')
在上面的示例中,我们将静态文件目录命名为'static_files',并将其放在应用程序包的'static'子目录下。我们可以在页面中使用'/static_files'路径来引用静态文件。
静态文件引用
在HTML模板中引用静态文件的方法与普通的HTML页面相同。我们可以使用'script'标签引用JavaScript文件,使用'style'标签引用CSS文件,使用'img'标签引用图像文件。下面是一个引用静态文件的示例:
代码语言:javascript复制<!-- index.html -->
<!DOCTYPE html>
<html>
<head>
<title>Hello World</title>
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
</head>
<body>
<h1>Hello, Flask!</h1>
<script src="{{ url_for('static', filename='script.js') }}"></script>
<img src="{{ url_for('static', filename='image.jpg') }}">
</body>
</html>
在上面的示例中,我们使用了Flask提供的'url_for'函数来生成静态文件的URL。这样可以确保静态文件的路径是正确的,并避免硬编码路径导致的错误。