一、前言
Flask是一个用Python编写的轻量级的Web应用框架。
Flask基于WSGI(Web Server Gateway Interface)和 Jinja2 模板引擎,旨在帮助开发者快速、简便地创建 Web 应用。
Flask 被称为"微框架",因为它使用简单的核心,用扩展增加其他功能。
1. Hello World
以下的 Flask 程序会在网页输出 Hello World :
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
2. Flask特点
- 轻量级和简介:Flask是一个微框架,提供了最基本的功能,不强制使用任何特定的工具或库。核心是简单而灵活的。
- 灵活性:提供了基本的框架结构,但是没有强制性的项目布局或者组件,开发者可以根据自己的需求定义。
- 可扩展性:Flask 的设计允许你通过插件和扩展来添加功能。许多常见的功能,如表单处理、数据库交互和用户认证,都可以通过社区提供的扩展来实现。
- 内置开发服务器:Flask 内置了一个开发服务器,方便在本地进行调试和测试。
- RESTful 支持:Flask 支持 RESTful API 的开发,适合构建现代的 Web 服务和应用程序。
二、Flask实践
1. Flask安装
首先确保安装Python:
python --version
或者,如果你使用 python3 命令:
python3 --version
使用 pip 安装 Flask:
pip install Flask
安装完成后,可以通过以下命令验证 Flask 是否安装成功:
pip show Flask
执行以上命令,显示结果类似如下:
Name: Flask
Version: 3.0.3
Summary: A simple framework for building complex web applications.
Home-page:
Author:
Author-email:
License:
Location: /Users/RUNOOB/.pyenv/versions/3.9.7/lib/python3.9/site-packages
Requires: itsdangerous, Jinja2, blinker, Werkzeug, click, importlib-metadata
Required-by:
Flask安装成功。
2. Flask第一个应用
上一章节已经成功安装了Flask,接下来可以创建一个简单的Flask应用。
首先,创建一个名为 app.py 的文件,并添加以下内容:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run(debug=True)
在命令行中运行 Flask 应用:
python app.py
你会看到 Flask 开发服务器启动,并显示类似于以下内容:
...
* Running on http://127.0.0.1:5000
Press CTRL+C to quit
* Restarting with stat
* Debugger is active!
* Debugger PIN: 977-918-914
...
打开浏览器,访问 http://127.0.0.1:5000/,应该会看到 "Hello, World!" 的消息,表示 Flask 已成功安装并运行。
代码解析:
-
from flask import Flask: 这行代码从
flask
模块中导入了Flask
类。Flask
类是 Flask 框架的核心,用于创建 Flask 应用程序实例。 -
app = Flask(__name__): 这行代码创建了一个 Flask 应用实例。
__name__
是一个特殊的 Python 变量,它在模块被直接运行时是'__main__'
,在被其他模块导入时是模块的名字。传递__name__
给Flask
构造函数允许 Flask 应用找到和加载配置文件。 -
@app.route('/'): 这是一个装饰器,用于告诉 Flask 哪个 URL 应该触发下面的函数。在这个例子中,它指定了根 URL(即网站的主页)。
-
def hello_world():: 这是定义了一个名为
hello_world
的函数,它将被调用当用户访问根URL时。 -
return 'Hello, World!': 这行代码是
hello_world
函数的返回值。当用户访问根 URL 时,这个字符串将被发送回用户的浏览器。 -
if __name__ == '__main__'::这行代码是一个条件判断,用于检查这个模块是否被直接运行,而不是被其他模块导入。如果是直接运行,下面的代码块将被执行。
-
app.run(debug=True):这行代码调用 Flask 应用实例的
run
方法,启动 Flask 内置的开发服务器。debug=True
参数会启动调试模式,这意味着应用会在代码改变时自动重新加载,并且在发生错误时提供一个调试器。
3. Flask基本概念
-
路由:路由是 URL 到 Python 函数的映射。Flask 允许你定义路由,这样当特定的 URL 被访问时,就会调用相应的函数。
-
视图函数:视图函数是处理请求并返回响应的 Python 函数。它们通常接收请求对象作为参数,并返回响应对象。
-
请求对象:请求对象包含了客户端发送的请求信息,如请求方法、URL、请求头、表单数据等。
-
响应