我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python web实战 | 用 Flask 框架快速构建 Web 应用【实战】

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python web实战 | 用 Flask 框架快速构建 Web 应用【实战】


 概要

Python web 开发已经有了相当长的历史,从最早的 CGI 脚本到现在的全栈 Web 框架,现在已经成为了一种非常流行的方式。

Python 最早被用于 Web 开发是在 1995 年(90年代早期),当时使用 CGI 脚本编写动态 Web 页面。2004 年 Django 框架发布,它是一个高度模块化的框架,提供了许多开箱即用的功能,使得 Web 开发更加容易和快速。Flask 框架于 2010 年发布,是一个轻量级的框架,它提供了更少的默认功能,但也更灵活,允许开发者根据需要添加或删除功能。


1. 什么是 Flask?

Flask 是一款 Python 的轻量级 Web 框架,它的特点是简单易用、灵活性高。Flask 框架可以快速搭建 Web 应用程序,是一个很好的选择。Flask 框架的核心思想是 WSGI(Web Server Gateway Interface),它定义了 Web 服务器和 Web 应用程序之间的通信协议。

1.1 Flask 的优势

  • 简单易用:Flask 框架的 API 简单易用,开发者能够快速上手。MVC设计模式。

  • 灵活性高:Flask 框架的扩展性高,可以根据实际需求进行扩展。

  • 轻量级:Flask 框架的代码量小,运行速度快。

  • 文档丰富:Flask 框架的文档非常详细,开发者能够轻松查找所需信息。

1.2 Flask 的缺点

  • 轻量级:Flask 框架的轻量级也是它的缺点之一,它的功能相对有限,需要自己进行扩展。

  • 不适合大型应用程序:Flask 框架适合小型应用程序,对于大型应用程序来说,可能会出现性能瓶颈。这时可以考虑Django。

1.3 Flask 的基础组件

Flask 框架由以下几个基础组件组成:

  • 路由:定义 URL 和视图函数之间的映射关系。

  • 视图函数:处理请求并返回响应。

  • 模板:生成 HTML 页面。

  • 表单:处理用户提交的数据。

  • 扩展:实现 Flask 框架的扩展功能。

2. 基础使用

2.1 安装 Flask

在开始使用 Flask 之前,需要先安装 Flask。可以使用 pip 命令进行安装:

pip install Flask

2.2 Hello World

下面是一个简单的示例,展示了如何使用 Flask 框架输出 "Hello World"。

新建一个app.py文件,输入如下内容。

Linux下执行:

export FLASK_APP=app.py

flask run

打开浏览器访问 http://127.0.0.1:5000/ 即可。

如果是 windows 执行:

set FLASK_APP=app.py

flask run

from flask import Flaskapp = Flask(__name__)@app.route('/')def hello_world():    return 'Hello, World!'

2.3 路由和视图函数

在 Flask 中,路由和视图函数是紧密相关的。路由用于将 URL 映射到视图函数上,视图函数则处理请求并返回响应。为了实现路由和视图函数,我们可以使用 Flask 中的 @app.route 装饰器。下面是一个简单的示例:

from flask import Flaskapp = Flask(__name__)@app.route('/')def index():    return 'This is the index page.'@app.route('/hello')def hello():    return 'Hello, World!'

@app.route('/') 和 @app.route('/hello') 分别定义了两个路由,index() 和 hello() 则是两个视图函数。

2.4 模板

模板是 Flask 中生成 HTML 页面的一种方式。Flask 支持多种模板引擎,包括 Jinja2、Mako、Tenjin 等。在本文中,我们使用 Jinja2 作为模板引擎。

下面是一个简单的示例,展示了如何使用模板生成 HTML 页面:

from flask import Flask, render_templateapp = Flask(__name__)@app.route('/')def index():    return render_template('index.html', title='Home')@app.route('/hello')def hello():    return render_template('hello.html', name='Flask')

render_template() 函数用于渲染模板,第一个参数指定模板名称,第二个参数则是模板中使用的变量。

2.5 静态文件

静态文件包括 CSS、JavaScript、图片等。在 Flask 中,可以使用 url_for() 函数生成静态文件的 URL。

下面是一个简单的示例:

        {<!-- -->{ title }}    { url_for('static', filename='style.css') }}">    

{{ title }}

    

Hello, Flask!

url_for('static', filename='style.css') 生成了静态文件 style.css 的 URL。

2.6 表单

表单是 Web 应用程序中常用的一种交互方式。在 Flask 中,可以使用 request 对象获取用户提交的表单数据。

下面是一个简单的示例:

from flask import Flask, requestapp = Flask(__name__)@app.route('/login', methods=['GET', 'POST'])def login():    if request.method == 'POST':        username = request.form['username']        password = request.form['password']        if username == 'admin' and password == 'password':            return 'Login success!'        else:            return 'Invalid username or password.'    else:        return '''                                                                                                                '''

request.form 可以获取 POST 请求提交的表单数据。

3. 实战案例:构建一个 Todo (待办) 应用

接下来,我们将通过一个实战案例来介绍如何使用 Flask 框架构建一个 Todo 应用。

3.1 数据库设计

首先,我们需要设计数据库。在本文中,我们使用 MySQL 作为数据库。下面是数据库的设计:

CREATE TABLE `todos` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `title` varchar(255) NOT NULL,  `completed` tinyint(1) NOT NULL DEFAULT '0',  PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

3.2 后端实现

接下来实现后端的功能:

from flask import Flask, render_template, request, redirect, url_forimport pymysql.cursorsapp = Flask(__name__)app.config['SECRET_KEY'] = 'secret'connection = pymysql.connect(    host='localhost',    user='root',    password='password',    db='todo',    charset='utf8mb4',    cursorclass=pymysql.cursors.DictCursor)@app.route('/')def index():    with connection.cursor() as cursor:        cursor.execute('SELECT * FROM `todos`')        todos = cursor.fetchall()    return render_template('index.html', todos=todos)@app.route('/add', methods=['POST'])def add():    title = request.form['title']    with connection.cursor() as cursor:        cursor.execute('INSERT INTO `todos` (`title`) VALUES (%s)', title)        connection.commit()    return redirect(url_for('index'))@app.route('/toggle/', methods=['POST'])def toggle(todo_id):    with connection.cursor() as cursor:        cursor.execute('SELECT `completed` FROM `todos` WHERE `id` = %s', todo_id)        completed = cursor.fetchone()['completed']        cursor.execute('UPDATE `todos` SET `completed` = %s WHERE `id` = %s', (not completed, todo_id))        connection.commit()    return redirect(url_for('index'))@app.route('/delete/', methods=['POST'])def delete(todo_id):    with connection.cursor() as cursor:        cursor.execute('DELETE FROM `todos` WHERE `id` = %s', todo_id)        connection.commit()    return redirect(url_for('index'))

解析:建立数据库连接,并定义四个路由:

  • /:显示所有的 Todo。

  • /add:添加一个 Todo。

  • /toggle/:标记一个 Todo 是否已完成。

  • /delete/:删除一个 Todo。

3.3 前端实现

最后实现前端的功能:

        Todo        

Todo

    { url_for('add') }}">                                
            {% for todo in todos %}                            { url_for('toggle', todo_id=todo.id) }}">                                        {{ todo.title }}                                { url_for('delete', todo_id=todo.id) }}">                                                        {% else %}            

    No todos.

            {% endfor %}    

我们使用了 Jinja2 模板引擎,展示了 Todo 列表、添加 Todo、标记 Todo 是否已完成、删除 Todo 等功能。

4. 技术总结

今天介绍了如何使用 Flask 框架进行 Web 开发,并实战开发了一个轻量级的web应用。Flask 是一款 Python 的轻量级 Web 框架,具有简单易用、灵活性高等优点,初学者也能快速上手。

来源地址:https://blog.csdn.net/Rocky006/article/details/131978301

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python web实战 | 用 Flask 框架快速构建 Web 应用【实战】

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python的简单web框架flask快速实现详解

这篇文章主要为大家介绍了python的简单web框架flask快速实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-02-07

使用Python的Flask框架构建大型Web应用程序的结构示例

虽然小型web应用程序用单个脚本可以很方便,但这种方法却不能很好地扩展。随着应用变得复杂,在单个大的源文件中处理会变得问题重重。 与大多数其他web框架不同,Flask对大型项目没有特定的组织方式;应用程序的结构完全交给开发人员自己决定。在
2022-06-04

Java Spring Boot Security实战:快速构建安全应用程序

Java Spring Boot Security是构建安全应用程序的强大工具。它提供了丰富的功能,如身份验证、授权、密码加密等,帮助开发人员快速、轻松地保护应用程序。本文将通过一个示例应用程序,演示如何使用Spring Boot Security来保护应用程序。
Java Spring Boot Security实战:快速构建安全应用程序
2024-02-02

使用Python的Flask框架来搭建第一个Web应用程序

1、初始化 在这章,你将学到Flask应用程序的不同部分。同时,你将编写和运行你的第一个Flask web应用程序。 所有的Flask应用程序都必须创建一个 应用程序实例 。使用web服务器网关接口协议将所有从客户端接收的请求传递给这个对象
2022-06-04

Java RESTful API 的实战应用:构建一个动态的 Web 应用程序

Java RESTful API 结合前端技术,可以构建功能强大的 Web 应用程序。本文将深入探讨其实战应用,指导您使用 Java RESTful API 构建一个动态的 Web 应用程序。
Java RESTful API 的实战应用:构建一个动态的 Web 应用程序
2024-03-07

Node.js Serverless 实战:构建无服务器 Web 应用程序的逐步指南

使用 Node.js 和 Serverless Framework 构建无服务器 Web 应用程序的全面指南,包含详细的代码示例和最佳实践,帮助您快速构建和部署可扩展、高可用性的应用程序。
Node.js Serverless 实战:构建无服务器 Web 应用程序的逐步指南
2024-02-21

python实现一个简单的web应用框架

这篇文章主要为大家介绍了使用python写一个简单的web应用框架实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-05-18

使用Python的Flask框架表单插件Flask-WTF实现Web登录验证

表单是让用户与我们的网页应用程序交互的基本元素。Flask 本身并不会帮助我们处理表单,但是 Flask-WTF 扩展让我们在我们的 Flask 应用程序中使用流行的 WTForms 包。这个包使得定义表单和处理提交容易一些。 Flask-
2022-06-04

Python 构建的高性能网络应用实战

本文将介绍如何使用Python构建高性能网络应用,包括使用 asyncio 构建异步服务器,使用 uWSGI 部署应用,以及使用 Nginx 优化性能。
Python 构建的高性能网络应用实战
2024-02-13

python实现web应用框架之增加响应对象

这篇文章主要介绍了python利用web应用框架如何增加响应对象的,文中有相应的代码示例,对大家的学习或工作有一定的参考价值,需要的同学可以参考下
2023-05-19

Java集合框架项目实战:构建真实世界的应用,体验框架的强大功能

Java集合框架提供的丰富数据结构和算法,使开发人员能够轻松管理和处理数据,本文通过构建真实世界的应用,演示集合框架的强大功能和灵活性。
Java集合框架项目实战:构建真实世界的应用,体验框架的强大功能
2024-02-22

Python web框架实际应用的优点有哪些

这篇文章主要介绍“Python web框架实际应用的优点有哪些”,在日常操作中,相信很多人在Python web框架实际应用的优点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python web框架实
2023-06-17

使用PHP MVC架构构建高可扩展性应用的实战案例

PHP MVC架构是一种流行的软件设计模式,它可以帮助我们构建高可扩展性、易于维护的应用程序。本文将通过一个实战案例,演示如何使用PHP MVC架构构建一个简单的留言簿应用程序。
使用PHP MVC架构构建高可扩展性应用的实战案例
2024-02-05

python实现web应用框架之增加动态路由

这篇文章主要介绍web应用框架如何添加动态路由,在我们编写的框架中,我们添加动态路由,是使用了正则表达式,同时在注册的时候,需要注明该路由是请求路由,文中有详细的代码示例,需要的朋友可以参考下
2023-05-19

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录