Flask用于构建Web应用程序的Python微框架


Flask 是一个轻量级的 [WSGI] Web 应用框架。它旨在让用户快速轻松地上手,并能够扩展至复杂的应用程序。它最初只是对 [Werkzeug]和 [Jinja] 的简单包装,如今已成为最受欢迎的 Python Web 应用框架之一。

Flask 提供建议,但不强制任何依赖项或项目布局。开发者可以自行选择他们想要使用的工具和库。社区提供了许多扩展,使添加新功能变得轻松。

[WSGI]:https://wsgi.readthedocs.io/
[Werkzeug]:https://werkzeug.palletsprojects.com/
[Jinja]:https://jinja.palletsprojects.com/

一个简单的例子

python 复制代码
# save this as app.py
from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello, World!"
复制代码
$ flask run
  * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

安装

Python 版本

我们建议使用最新版本的 Python。Flask 支持 Python 3.9 及其以上版本。

依赖

这些包会在安装 Flask 的时候被自动安装。

  • Werkzeug 实现了 WSGI——程序和服务器之间交互的 Python 标准。
  • Jinja 是一个模板语言,它可以渲染你的程序提供的页面。
  • MarkupSafe 随 Jinja 附带。当渲染模板时,它会转义不受信任的输入以避免注入攻击。
  • ItsDangerous 可以安全地签名数据以确保数据的完整性。这被用来保护 Flask 的 session cookie。
  • Click 是一个用来写命令行程序的框架。它提供了 flask 命令并允许添加自定义管理命令。
  • Blinker 提供 信号 支持。

可选依赖

这些包不会被自动安装。如果你安装了的话,Flask 会检测到并使用它们。

  • python-dotenv 在执行 flask 命令时开启对 Environment Variables From dotenv 的支持。
  • Watchdog 为开发服务器提供更快和更高效的重载器(reloader)。

greenlet

你可以选择在应用中使用 gevent 或 eventlet。在这种情况下,需安装 greenlet>=1.0。若使用 PyPy,则需要 PyPy>=7.3.7。

这些并不是最低支持的版本,而是指首次引入所需功能的版本。建议始终使用各组件的最新版本。

虚拟环境

使用虚拟环境可以在开发和生产环境下管理项目依赖。

虚拟环境解决了什么问题?你的 Python 项目越多,就越有可能需要使用不同版本的 Python 包,甚至 Python 本身。某个项目使用的新版本的库可能会破坏其他项目的兼容性。

虚拟环境是 Python 库的独立集合,每一个项目对应一个虚拟环境。安装到某个项目的包不会影响其他项目或是操作系统层级的包。

Python 自带的 venv 模块可以用来创建虚拟环境。

创建虚拟环境

创建一个项目文件夹,并在其中创建虚拟环境文件夹 .venv:

linux 复制代码
$ mkdir myproject
$ cd myproject
$ python3 -m venv .venv
windows 复制代码
> mkdir myproject
> cd myproject
> py -3 -m venv .venv

激活虚拟环境

在开始动手做你的项目之前,先激活对应的虚拟环境:

linux 复制代码
$ . .venv/bin/activate
windows 复制代码
> .venv\Scripts\activate

你的 shell 提示符现在会显示激活的虚拟环境名称。

安装 Flask

在激活的虚拟环境内,使用下面的命令安装 Flask:

复制代码
$ pip install Flask

Flask 现在已经安装好了。阅读 快速入门 或是前往 文档概览 进一步了解 Flask。

关于项目

Flask 是一个轻量级的 WSGI Web 应用框架。它旨在让用户快速轻松地上手,并能够扩展至复杂的应用程序。它最初只是 Werkzeug 和 Jinja 的一个简单包装器,如今已成为最受欢迎的 Python Web 应用框架之一。
BSD-3-Clause
Python
70,546
16557
2104
2010-04-06
2025-09-20

增长趋势 - stars