Python Flask入门之模板

yizhihongxing

下面是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 是一个轻量级的 Web 框架,提供了简洁的 API 和易于使用的工具,使得开发 Web 应用程序变得更加简单。 在本文中,我们将深入探讨 Flask 中的文件上传功能。 首先,在 Flask 中使用文件上传,需要用到 werkzeug 模块的 FileStorage 类。FileStorage 可以将上传的文件转换为特定类型的表示,以便在应用程序…

    Flask 2023年3月13日
    00
  • python学习开发mock接口

    Python学习开发Mock接口 在进行前后端项目开发中,前后端联调过程中可能会出现前后端开发进度不一致或者依赖的接口尚未完成等问题,导致耗费大量时间等问题。这时可以使用Mock接口的技术手段,在后端接口未完成的情况下,模拟数据返回从而达到开发目的。 本篇攻略将介绍Python Mock接口的开发,并包含两个示例说明。 准备工作 安装Python开发环境 本…

    Flask 2023年5月16日
    00
  • Flask 入门Web 微框架Hello Flask

    下面我详细讲解一下“Flask 入门Web 微框架Hello Flask”的完整攻略。 1. 安装 Flask 首先,在终端中输入以下命令安装 Flask: pip install flask 2. 创建 Flask 应用 然后,我们需要创建一个 Flask 应用。在你的 IDE 或终端中创建一个名为 hello.py 的文件,然后输入以下代码: from …

    Flask 2023年5月15日
    00
  • Flask sqlalchemy一对多与多对一与一对一及多对多关系介绍

    下面给您详细讲解“Flask sqlalchemy一对多与多对一与一对一及多对多关系介绍”的完整攻略。 一对多关系 一对多关系适用于一个模型拥有多个其他模型的实例,但是其他模型的实例只属于一个模型实例。比如一个用户可以拥有多篇文章,但是一篇文章只属于一个用户。 在 Flask sqlalchemy 中可以使用 relationship 属性来建立一对多关系,…

    Flask 2023年5月15日
    00
  • 如何使用 Flask 做一个评论系统

    下面我来详细讲解使用 Flask 做一个评论系统的完整攻略。 准备工作 使用 Flask 做一个评论系统需要以下准备工作: 安装 Python 和 Flask 安装 ORM 框架 SQLAlchemy 安装数据库 MySQL 为了方便操作,我们可以使用 Anaconda 环境,这个环境包含了 Python、Flask 和 SQLAlchemy,我们只需要安装…

    Flask 2023年5月15日
    00
  • Python flask框架post接口调用示例

    下面是“Python Flask框架POST接口调用示例”的完整攻略: 1. 确保flask和requests已安装 在开始之前,需要确保flask和requests已安装。如果没有安装可以在命令行中使用以下命令进行安装: pip install flask pip install requests 2. 创建Flask应用程序 创建一个Python脚本ap…

    Flask 2023年5月15日
    00
  • 关于Flask 视图介绍

    关于Flask视图的介绍主要包含以下内容。 什么是Flask视图 Flask视图是一种函数,用于处理来自客户端的请求并返回响应。在Flask中,视图函数被装饰器@app.route()所修饰。当客户端请求与修饰器中指定的URL相匹配时,Flask就会调用对应的视图函数来处理该请求。 from flask import Flask app = Flask(__…

    Flask 2023年5月16日
    00
  • flask框架单元测试原理与用法实例分析

    Flask框架单元测试原理与用法实例分析 什么是单元测试 在软件开发中,单元测试指的是对软件中的最小可测试单元进行验证和检测的过程。最小可测试单元通常是一个函数或方法。它的目的是确保这个单元的行为符合预期并且它们在被改进之后不会破坏原有的功能。 单元测试通常是自动化的,意味着测试用例是在没有人工干预的情况下执行的。每个测试用例只测试一个特定的行为,并且不依赖…

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