news 2026/4/18 15:17:34

10 - 使用Flask开发Web应用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
10 - 使用Flask开发Web应用

Python Web 框架的使用率仍然是 Flask、Django 和 FastAPI 之间的三强之争。所有其他框架加起来只能勉强排在第三位。下面对这三个主流框架做下比较:

  • Djanggo
    • 使用比率: 39%
    • 系统特点:全栈框架:内置 ORM、模板引擎、表单处理、用户认证等功能;开箱即用:适合快速开发复杂的 Web 应用;社区强大:有丰富的第三方库和插件。
    • 系统性能:中等。由于功能丰富,性能略低于轻量级框架,但足够应对大多数场景。
    • 适用场景:需要快速开发的全栈应用如内容管理系统(CMS)、社交网络、电子商务网站等。
  • Flask
    • 使用比率:36%
    • 系统特点:微框架:轻量级,核心功能简单,易于扩展;灵活:可以根据需求选择插件和库;学习曲线低:适合初学者和小型项目。
    • 系统性能:较高:由于轻量级设计,性能优于 Django。
    • 适用场景:小型 Web 应用、API 服务、原型开发。
  • FastAPI
    • 使用比率:25%
    • 系统特点:高性能:基于 Starlette 和 Pydantic,性能接近 Node.js 和 Go;异步支持:原生支持异步编程;自动文档:自动生成 OpenAPI 和 Swagger 文档。
    • 系统性能:极高:是目前性能最好的 Python Web 框架之一。
    • 适用场景:高性能 API 服务、微服务、实时应用。

目前纯粹的前端框架有很多如vueangularReact等,笔者不建议使用Python做web界面开发,可以使用Python开发人工智能后端后通过restful API发布接口,供第三方应用调用即可。

下面逐个介绍这几个框架并提供简单的web开发应用,只做抛砖引玉的作用,不做详细的引申,感兴趣的同学可以针对自己感兴趣的框架做进一步的学习。接下来继续了解Flask

Flask是一个轻量级的WSGI web应用框架。它的目的是让开发人员能够快速入门和易于使用,容易扩展。它最初是WerkzeugJinja的简单包装,现在已经成为最流行的 Python web应用程序框架之一。

Flask提供建议,但不强制任何依赖项或项目构造。取决于开发人员选择他们想要使用的工具和库。

社区提供了许多扩展,可以轻松添加新功能。

项目依赖

Python依赖

推荐使用Python最新的版本。如果项自主选择,则要求Python 3.9及以上版本。

依赖项

Flask依赖于一下包或库,在安装Flask时也将自动安装进入:

  • Werkzeug:实现了应用程序和服务器之间的标准Python接口WSGI;
  • Jinja:是一种模板语言,用于渲染应用程序所提供的页面;
  • MarkupSafe:与Jinja一起提供。它在呈现模板时转义不可信的输入,以避免注入攻击;
  • ItsDangerous:安全地签名数据以确保其可信任。这是用来保护Flaskcookie的;
  • Click:是编写命令行应用程序的框架。使用它来支持flask命令,并允许添加自定义管理命令;
  • Blinker:提供了对信号的支持。

另外,还有以下的依赖项,在必要的时候也需要安装:

  • python-dotenv:在运行flask命令时启用来自dotenv的环境变量支持。
  • Watchdog:为开发服务器提供了一个更快、更有效的看门狗。

还有,你可以在你的应用里选择使用gevent或者eventlet。此种情况下,需要greenlet >= 1.0,如果使用PyPy,则要求PyPy >= 7.3.7

Flask 安装

安装Flask很简单,运行以下命令:

uv pip install flask

开发第一个应用

首先我们使用uv创建一个项目flaskdemo

uv init flaskdemo

输出:

Initialized project `flaskdemo` at `E:\template\code\python\flaskdemo`

使用uv创建项目后并没有生成虚拟环境,但此时在项目目录上会自动生成一个main.py的Python文件:

cd flashdemo dir

目录结构如下:

. ├── .python-version ├── README.md ├── main.py ├── pyproject.toml

这时,再运行以下命令创建虚拟环境并激活环境:

uv run main.py

输出:

Using CPython 3.13.2 interpreter at: D:\ProgramFiles\Python\Python313\python.exe Creating virtual environment at: .venv Hello from flaskdemo!

再看目录,多了个.venv虚拟环境目录:

. ├── .venv #虚拟环境目录 │ ├── Scripts │ ├── lib │ └── pyvenv.cfg ├── .python-version ├── README.md ├── main.py ├── pyproject.toml └── uv.lock # 锁定文件

然后激活虚拟环境后安装flask

.venv\Scripts\activate uv add flask

使用以上命令将flask及其依赖项安装到当前项目的虚拟环境中。我们看一下安装的依赖项:

uv pip list

结果:

Package Version ------------ ------- blinker 1.9.0 click 8.2.0 colorama 0.4.6 flask 3.1.0 itsdangerous 2.2.0 jinja2 3.1.6 markupsafe 3.0.2 werkzeug 3.1.3

回过头来,我们用记事本等文本编辑工具打开main.py,修改的代码如下:

from flask import Flask app = Flask(__name__) @app.route("/") def hello_world(): return "<p>Hello, World!</p>"

首先,我们导入了Flask类。这个类的一个实例就是我们的WSGI应用程序。

接下来,我们创建该类的一个实例。第一个参数是应用程序的模块或包的名称。__name__是一个方便的快捷方式,适用于大多数情况。这是必需的,以便Flask知道在哪里查找模板和静态文件等资源。

然后我们使用route()装饰器告诉Flask哪个URL应该触发我们的函数。该函数返回我们想要在用户浏览器中显示的消息。默认的内容类型是HTML,因此字符串中的HTML将由浏览器呈现。

修改完成后保存文件,现在我们运行服务:

flask --app main run

如果以下内容展示之后,表示服务运行起来了:

* Serving Flask app 'main' * Debug mode: off WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Running on http://127.0.0.1:5000 Press CTRL+C to quit

这时,我们打开浏览器,在地址栏上输入http://127.0.0.1:5000,将看到如下结果:

至此,我们用Flask开发的第一个应用就完成了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 10:15:02

LobeChat节日营销专题页内容策划

LobeChat&#xff1a;构建节日营销智能助手的技术实践 在“双十一”、“618”这类全民购物节期间&#xff0c;用户涌入电商平台咨询优惠规则、比价信息和配送政策&#xff0c;客服系统往往不堪重负。而传统网页FAQ交互僵硬&#xff0c;无法满足个性化提问需求&#xff1b;自研A…

作者头像 李华
网站建设 2026/4/18 11:51:59

3分钟极速换源:CentOS7镜像源批量更换方案

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个高效CentOS7换源工具&#xff0c;要求&#xff1a;1) 支持通过IP列表批量操作多台服务器 2) 内置国内主流镜像源选项(阿里云、腾讯云、华为云等) 3) 执行时间统计功能 4) 生…

作者头像 李华
网站建设 2026/4/17 20:42:36

1小时搭建:基于Windows Server 2016的测试环境原型

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个Windows Server 2016快速部署原型系统&#xff0c;功能包括&#xff1a;1)一键下载合法评估版ISO 2)自动创建VirtualBox/VMware虚拟机 3)预装IIS/PowerShell等基础组件 4)集…

作者头像 李华
网站建设 2026/4/18 7:02:54

ESP32 FreeRTOS任务管理大全:概念、实现、优化与调试的一站式学习手册

文章总结&#xff08;帮你们节约时间&#xff09; FreeRTOS任务管理是ESP32多任务编程的核心&#xff0c;理解任务状态转换是掌握实时系统的关键 任务调度器采用优先级抢占式调度算法&#xff0c;高优先级任务总是优先执行&#xff0c;同优先级任务采用时间片轮转 任务间通信机…

作者头像 李华
网站建设 2026/4/17 21:32:26

net学习总结

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 一、rc文件启动 二、main函数 三、netlinkmanager分析 四、NetdNativeService分析 五、NetdworkManagemenrService初始化 一、rc文件启动 netd进程是一个可执行的bin文…

作者头像 李华
网站建设 2026/4/18 4:55:56

北京大学国家发展研究院 经济学辅修 经济学原理课程笔记(第八课 外部性)

文章目录第八课 外部性外部性的概念外部性的基本概念负外部性正外部性关于外部性的基本理论生产中的外部性生产中的负外部性生产中的正外部性消费中的外部性消费中的负外部性消费中的正外部性解决外部性问题的公共政策政府规制矫正税或补贴配额管理创新的正外部性核心问题&…

作者头像 李华