Python Flask入门之模板

下面是Python Flask入门之模板的完整攻略:

1. 概述

Python Flask是一种轻量级的Web框架,提供了非常简单的方式来构建Web应用程序。在Flask中,模板是用来定义页面布局、数据展示和用户输入的一种方法。通过使用模板,可以在不同的页面中嵌入一些公共的HTML代码、样式等。本文将是一个Python Flask模板入门教程。

2. 准备工作

在使用Python Flask之前,需要先安装Flask。可以通过pip来安装:

pip install flask

3. 创建Flask应用程序

创建一个Python文件,起名app.py,引入Flask库,然后创建一个简单的Flask应用程序。

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello World!"

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

这个程序创建了一个单页面的Flask应用程序,在浏览器中访问http://localhost:5000/ 将会看到"Hello World"的输出。

4. Flask模板

Flask模板使用Jinja2模板引擎。在Flask应用程序中,可以通过渲染模板来生成HTML页面。Flask应用程序的templates目录中留下所有模板文件。

首先,需要在应用程序的根目录下创建名为“templates”的文件夹。然后,为该应用程序创建一个HTML文件,被称为模板。例如,在应用程序的模板文件夹中创建名为“index.html”的文件:

<!DOCTYPE html>
<html> 
<body> 
    <h1>{{ title }}</h1> 
    <p>Welcome to my Flask web page!</p> 
</body> 
</html> 

要在Flask应用程序中使用模板,需要在视图函数中引入render_template 函数。render_template函数接受模板文件的名称和变量的字典,然后将变量替换为HTML页面上的相应提取的值。例如,下面的视图函数将呈现在上述模板文件中添加的title变量:

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def index():
    title = 'Homepage'
    return render_template('index.html', title=title)

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

在浏览器中访问http://localhost:5000 将会看到一个可读内容为“Homepage”的标题。

5. 示例1:Flask模板的继承

另一个非常强大的特性是Flask模板继承。Flask模板继承允许将一些公共部分继承到所有页面。这将减少代码的重复,并使代码的维护更加容易。

首先,需要创建base.html文件作为父模板。在该模板中定义页面的公共部分:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>{% block title %}{% endblock %}</title>
</head>
<body>
    <header>
        {% block header %}
        <h1>Welcome to my Flask web site!</h1>
        {% endblock %}
    </header>
    {% block content %}{% endblock %}
    <footer>
        {% block footer %}
        <p>&copy; 2021 My Amazing Flask Site</p>
        {% endblock %}
    </footer>
</body>
</html>

然后,在子模板中将该公共部分继承。下面是一个用于继承的视图函数:

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index_child.html')

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

注意,在这种情况下,在子模板中可以使用父模板中定义的每个块的标识符。这样,子模板将只覆盖选定块的内容,并保留剩余内容。

下面是继承base.html文件的示例子模板:

{% extends "base.html" %}

{% block title %}Homepage{% endblock %}

{% block header %}
    {{ super() }}
    <h2>It's good to see you again!</h2>
{% endblock %}

{% block content %}
    <h3>Welcome to my Home page!</h3>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
{% endblock %}

在浏览器中访问http://localhost:5000 将会看到一个可读内容为“Homepage”的标题,继承自继承base.html文件的子模板。

6. 示例2:控制流与模板

使用控制流可以使Flask应用程序更加动态。例如,可以使用if和for语句,使内容根据数据的不同而动态显示。

在本示例中,我们将从一个包含人物名字和所属城市的字典开始。我们将使用模板和控制流创建以下列表。

首先,需要更新视图函数来提供一个含有列表信息的变量:

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def index():
    people = [
        {'name': 'Alice', 'city': 'New York'},
        {'name': 'Bob', 'city': 'Los Angeles'},
        {'name': 'Charlie', 'city': 'Chicago'},
        {'name': 'David', 'city': 'Houston'}
    ]
    return render_template('people.html', people=people)

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

接下来,定义people.html模板,并使用for语句在HTML页面中创建一个动态列表:

{% extends "base.html" %}
{% block title %}People{% endblock %}
{% block content %}
    <h1>People</h1>
    <ul>
        {% for person in people %}
            <li>{{ person['name'] }} - {{ person['city'] }}</li>
        {% endfor %}
    </ul>
{% endblock %}

在浏览器中访问http://localhost:5000 将会看到一个包含4个元素的名字和城市列表。

以上就是Python Flask入门之模板的完整攻略,包含了“Flask模板”、“示例1:Flask模板的继承”、“示例2:控制流与模板”三个内容。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python Flask入门之模板 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • Python flask路由间传递变量实例详解

    下面我来详细讲解一下“Python flask路由间传递变量实例详解”的完整攻略。 一、什么是 Flask 路由 路由是 Web 应用程序中的一个术语,用于指定应用程序如何响应对特定端点的客户机请求。在 Flask 中,路由是与 URL 绑定的响应函数。 下面是一个定义路由的基本语法: @app.route(‘/path/’) def function_na…

    Flask 2023年5月15日
    00
  • 一个基于flask的web应用诞生 flask和mysql相连(4)

    下面来详细讲解“一个基于flask的web应用诞生 flask和mysql相连(4)”的完整攻略,并且包含两条示例说明。 标题 一、前言 在建立web应用的时候,数据的处理是非常重要的一项任务,而flask本身只是一个web应用框架,并不具备直接处理关系型数据库的能力,需要借助mysql等数据库来进行数据的存取操作。而本篇攻略将讲解如何基于flask框架来实…

    Flask 2023年5月15日
    00
  • es+flask搜索小项目实现分页+高亮的示例代码

    下面我将详细讲解“es+flask搜索小项目实现分页+高亮的示例代码”完整攻略,包含两条示例说明。 示例一:使用Python Flask框架和Elasticsearch检索引擎实现搜索功能 步骤一:准备工作 安装Python Flask框架以及它的依赖包。 安装Elasticsearch检索引擎驱动程序的Python客户端库:elasticsearch-py…

    Flask 2023年5月16日
    00
  • 用python实现监控视频人数统计

    下面我将为你详细讲解“用Python实现监控视频人数统计”的完整攻略。 1. 前置条件 首先,我们需要准备好以下的环境: Python3 openCV库 Numpy库 在准备环境时,需要注意openCV库的版本是否与Python版本兼容。可以通过打开Python命令提示符或Anaconda上的命令行终端,输入以下命令来检查openCV库的版本: import…

    Flask 2023年5月16日
    00
  • Flask Cookie 使用方法详解

    Flask 是一个 Python Web 框架,Cookie 是一个小型文本文件,由服务器发送给 Web 浏览器并保存在本地计算机上,用于跟踪用户。本文将详细介绍 Flask 中的 Cookie 处理,并提供代码示例。 Flask 的 Cookie 模块 Flask 的 Cookie 模块是 Flask 对 Python 标准库中 Cookie 模块的封装。…

    Flask 2023年3月13日
    00
  • Python Flask基础到登录功能的实现代码

    我来详细讲解一下“Python Flask基础到登录功能的实现代码”的完整攻略,以下是详细步骤: 1.安装 Flask 首先,在命令行中使用pip安装Flask: $ pip install Flask 2.创建 Flask 应用 在一个新的Python文件中,导入Flask库,然后使用Flask()构造函数创建一个新的应用 from flask impor…

    Flask 2023年5月15日
    00
  • flask-restful使用总结

    下面我将详细讲解“flask-restful使用总结”的完整攻略,包含两个示例。 一、总体概述 1. 什么是Flask-RESTful? Flask-RESTful是一个基于Flask构建的RESTful API扩展。它使得在Flask应用程序中开发RESTful API变得异常简单。 2. 使用Flask-RESTful的好处 使用Flask-RESTfu…

    Flask 2023年5月15日
    00
  • Flask框架之数据交互的实现

    Flask是一款轻巧灵活的Python Web框架,通过Flask框架搭建后端服务可以快速地进行前后端的数据交互。本文将详细讲解Flask框架中数据交互的实现完整攻略,包括使用Flask框架通过GET和POST方式实现前后端数据传递的两个具体示例。 一、GET方式实现数据交互 GET方式是HTTP请求中最常见的一种方式,我们一般通过在URL中进行上传数据来实…

    Flask 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部