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日

相关文章

  • flask中使用蓝图将路由分开写在不同文件实例解析

    在Flask中使用蓝图将路由分开写在不同文件的过程如下: 创建蓝图对象 在Flask应用程序实例化后,我们首先需要创建一个蓝图对象,来管理我们将要拆分的路由和视图函数。我们可以在自己的代码文件中导入蓝图并创建实例: from flask import Blueprint bp = Blueprint(‘example’, __name__) 此时,bp就是我…

    Flask 2023年5月16日
    00
  • flask-script模块的具体使用

    Flask-Script是一个与Flask集成的命令行解析器,使得开发者可以轻松地通过命令行来对Flask应用程序进行管理。 安装Flask-Script 在使用Flask-Script之前,需要将其安装到Flask应用程序中。在终端中输入以下命令来安装Flask-Script: pip install flask-script 使用Flask-Script…

    Flask 2023年5月16日
    00
  • Flask深入了解Jinja2引擎的用法

    首先介绍一下Jinja2引擎,它是一个基于Python的模板引擎,常用于web开发中生成HTML页面。 一、Jinja2引擎的基本用法 在Flask中,可以通过实例化Jinja2对象,将其与app关联,来使用Jinja2引擎。示例代码如下: from flask import Flask, render_template from jinja2 import…

    Flask 2023年5月15日
    00
  • python实现通过flask和前端进行数据收发

    实现通过Flask和前端进行数据收发的过程大致可以分为以下几个步骤: 1. 安装Flask框架 首先需要安装Flask框架,可以通过pip命令进行安装: pip install Flask 2. 编写后端Flask应用 编写一个简单的Flask应用,实现接收前端数据,处理数据并返回结果。以下是一个示例代码: from flask import Flask, …

    Flask 2023年5月15日
    00
  • Flask 使用Gunicorn部署服务介绍

    下面将详细讲解“Flask 使用 Gunicorn 部署服务介绍”的完整攻略。 一、前置条件 在开始部署 Flask 服务之前,需要确保以下软件已经安装在服务器上: Python 3.x pip virtualenv Gunicorn 可以执行以下命令检查软件是否已经安装: python3 –version pip –version virtualenv…

    Flask 2023年5月15日
    00
  • Flask和pyecharts实现动态数据可视化

    下面我将详细讲解一下“Flask和pyecharts实现动态数据可视化”的完整攻略。 一、背景 Flask是一款基于Python的轻量级Web应用框架,而pyecharts是一个Python语言的交互式可视化引擎。本文旨在介绍如何通过Flask和pyecharts实现动态数据可视化。 二、步骤 1. 安装Flask 可以通过pip安装Flask。 pip i…

    Flask 2023年5月16日
    00
  • Flask模板继承深入理解与应用

    让我来为你详细讲解“Flask模板继承深入理解与应用”的完整攻略。在本文中,我们将会讨论以下几个重点: 模板继承的概念 Flask中的模板继承 实现模板继承的方法 示例一:实现一个简单的模板继承 示例二:更为复杂的模板继承 模板继承的概念 模板继承是指在实现网站开发过程中,使用一种模板来定义整个站点的基本结构和样式,然后在不同的页面上使用该模板,以保证页面之…

    Flask 2023年5月15日
    00
  • Flask搭建api服务的实现步骤

    下面是详细的“Flask搭建api服务的实现步骤”的完整攻略。 准备工作 在开始之前,我们需要安装一些必要的工具。具体来说,我们需要安装Python和Flask框架。 关于Python的安装,可以参考官方文档:https://www.python.org/downloads/ 关于Flask框架的安装,可以在命令行中执行以下命令: pip install f…

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