简介
在本实验中,我们将学习如何在Flask中创建和使用模板。模板是Web应用程序的关键部分。它们使我们能够生成动态HTML页面,每次加载时都可以显示不同的数据。我们将使用与Flask捆绑在一起的Jinja2模板引擎。
注意:你需要自己创建代码文件并在环境中运行它。你可以在Web 5000上预览Flask服务状态。
This tutorial is from open-source community. Access the source code
💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版
在本实验中,我们将学习如何在Flask中创建和使用模板。模板是Web应用程序的关键部分。它们使我们能够生成动态HTML页面,每次加载时都可以显示不同的数据。我们将使用与Flask捆绑在一起的Jinja2模板引擎。
注意:你需要自己创建代码文件并在环境中运行它。你可以在Web 5000上预览Flask服务状态。
我们的第一步是创建一个将用于所有页面的基础布局。这个基础布局将包括我们应用程序的常见元素,如导航栏和页面标题。
<!-- flaskr/templates/base.html -->
<!doctype html>
<title>{% block title %}{% endblock %} - Flaskr</title>
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}" />
<nav>
<h1>Flaskr</h1>
<ul>
{% if g.user %}
<li><span>{{ g.user['username'] }}</span></li>
<li><a href="{{ url_for('auth.logout') }}">退出登录</a> {% else %}</li>
<li><a href="{{ url_for('auth.register') }}">注册</a></li>
<li>
<a href="{{ url_for('auth.login') }}">登录</a>
{% endif %}
</li>
</ul>
</nav>
<section class="content">
<header>{% block header %}{% endblock %}</header>
{% for message in get_flashed_messages() %}
<div class="flash">{{ message }}</div>
{% endfor %} {% block content %}{% endblock %}
</section>
接下来,我们将为注册页面创建一个模板。这个模板将扩展我们的基础布局,并填充此页面的特定内容。
<!-- flaskr/templates/auth/register.html -->
{% extends 'base.html' %} {% block header %}
<h1>{% block title %}注册{% endblock %}</h1>
{% endblock %} {% block content %}
<form method="post">
<label for="username">用户名</label>
<input name="username" id="username" required />
<label for="password">密码</label>
<input type="password" name="password" id="password" required />
<input type="submit" value="注册" />
</form>
{% endblock %}
同样,我们将为登录页面创建一个模板。这个模板也将扩展我们的基础布局,并填充此页面的特定内容。
<!-- flaskr/templates/auth/login.html -->
{% extends 'base.html' %} {% block header %}
<h1>{% block title %}登录{% endblock %}</h1>
{% endblock %} {% block content %}
<form method="post">
<label for="username">用户名</label>
<input name="username" id="username" required />
<label for="password">密码</label>
<input type="password" name="password" id="password" required />
<input type="submit" value="登录" />
</form>
{% endblock %}
在本实验中,我们学习了如何在Flask中创建和使用模板。我们创建了一个包含应用程序常见元素的基础布局,然后为注册和登录页面创建了特定的模板,这些模板扩展了基础布局并填充了它们的特定内容。这使我们能够保持代码的DRY(不要重复自己)原则,使其更易于维护且更不易出错。