python flask-模板基础

大家好,我是python网页后端flask的讲师geo

使用 Jinja2 模板引擎

Flask 使用 Jinja2 作为模板引擎,允许你在 HTML 文件中嵌入 Python 代码。

Jinja2 支持变量替换、条件语句和循环等基本功能。

创建 HTML 模板并传递数据

Flask 通过 render_template() 函数将 Python 数据传递到 HTML 模板中。

app.py:

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def index():
    # 数据传递给模板
    return render_template('index.html', name="John", age=30)

if __name__ == '__main__':
    app.run(debug=True)

index.html

模板文件放在 templates/ 文件夹内

files/
│
├── app.py
├── templates/
│   ├── index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Welcome</title>
</head>
<body>
    <h1>Hello, !</h1>
    <p>You are  years old.</p>
</body>
</html>

在这个示例中,render_template() 函数会将 nameage 变量传递给 index.html,模板会动态地将这些变量替换成相应的值。

使用 Jinja2 的控制结构

你还可以在模板中使用控制结构,比如条件语句和循环。

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>User Info</title>
</head>
<body>
    <h1>Hello, !</h1>
    
    
        <p>You are a minor.</p>
    
    
    <h2>Your favorite foods:</h2>
    <ul>
        
    </ul>
</body>
</html>

在这个例子中,iffor 控制结构用于显示不同的内容或循环显示列表。

app.py

@app.route('/')
def index():
    favorite_foods = ["Pizza", "Burger", "Ice Cream"]
    return render_template('index.html', name="John", age=30, favorite_foods=favorite_foods)