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框架实现简单加法工具过程解析”的完整攻略。 Python Flask框架实现简单加法工具过程解析 什么是Python Flask框架 Flask是Python的一个微框架,它的核心是Werkzeug和Jinja2。 Flask的设计非常简单,代码易读易理解,适合用于小型Web应用的开发。它是一个轻量级的框架,具有易…

    Flask 2023年5月15日
    00
  • python之sqlalchemy创建表的实例详解

    首先,需要明确的是SQLAlchemy是一个Python编写的关系型数据库框架,可以方便地对数据库进行操作。在这样一个框架中创建表格非常容易,下面我将详细介绍如何使用SQLAlchemy创建一个表格。 环境搭建 在开始创建表格之前,你需要先安装SQLAlchemy模块。可以在命令行中输入以下命令安装: pip install sqlalchemy 依赖库安装…

    Flask 2023年5月16日
    00
  • Flask 文件上传方法(详解版)

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

    Flask 2023年3月13日
    00
  • Flask框架搭建虚拟环境的步骤分析

    下面是“Flask框架搭建虚拟环境的步骤分析”的完整攻略。 步骤1:安装虚拟环境工具 虚拟环境工具可以帮助我们在同一台机器上管理多个 Python 项目所需的不同 Python 环境、包依赖、库版本等。这里推荐使用 virtualenv 工具。 安装 virtualenv 的命令如下: pip install virtualenv 安装成功后可以验证一下: …

    Flask 2023年5月15日
    00
  • Flask框架信号用法实例分析

    以下是详细讲解“Flask框架信号用法实例分析”的完整攻略,包括两个示例说明。 一、Flask框架信号 Flask框架的信号就像是事件,当一个特定的事件发生时,可以触发一个或多个函数。Flask框架内置了多个信号,例如在请求处理前后、请求处理异常等情况下,都有相应的信号被触发。 Flask框架的信号主要由以下3部分组成: 触发器:当特定情况发生时,触发器会产…

    Flask 2023年5月15日
    00
  • Python猜解网站数据库管理员密码的脚本

    首先,我想强调的是,攻击他人网站是不道德且违法的行为。在任何情况下,我们都不应该尝试侵入他人网站或服务,以防止引起不必要的后果。 现在,让我们来看一下如何创建一个Python脚本来尝试破解一个Web应用程序数据库管理员密码的攻击。我们将使用Python编程语言,与SQL注入攻击相结合来实现这个目标。 步骤如下: 使用Python requests库发送POS…

    Flask 2023年5月16日
    00
  • Flask-Vue前后端分离的全过程讲解

    让我来详细讲解一下Flask-Vue前后端分离的全过程及两个示例。 1. 背景介绍 在现代Web应用中,前后端分离是一种流行的应用架构方式。采用前后端分离的架构,可以充分发挥前端和后端的优势,提高应用的性能和稳定性。在前后端分离架构中,前端和后端通常采用不同的技术栈来实现,例如前端使用Vue.js框架,后端使用Flask框架。 2. 环境配置 在使用Flas…

    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
合作推广
合作推广
分享本页
返回顶部