Flask 框架简介

Flask 框架简介

  • [Flask 框架简介](#Flask 框架简介)

Flask 框架简介

Flask 是一个 Python 微型网页开发框架。微型指明了 Flash 的核心是轻量级的,但是可以灵活扩展。下面的简单的例子要和一个数据库系统交互。Django附带了与最常见的数据库交互所需的库。另一方面,Flask允许根据数据库类型或集成方法使用扩展来实现相同的目标。Flask的另一个理念是使用约定而不是配置,这意味着如果我们遵循网页开发的标准约定,我们就必须减少配置。这使得Flask成为初学者学习Python 网页开发的最佳选择。我们选择Flask进行网页开发,不仅是因为它易于使用,还因为它允许我们逐步引入不同的概念。

在这一节中,我们会构建一个带有路由的基础应用。我们接下来会使用代码示例理解怎么构建一个网页应用程序,以及路由是怎么工作的。下面是完整的代码示例:

python 复制代码
# Flask 应用程序中的路由
from flask import Flask

app = Flask(__name__)
@app.route("/")
def hello():
    return "这个世界会好吗?"

@app.route("/greeting")
def greeting():
    return "这是世界上最美丽的地方!"

if __name__ == "__main__":
    app.run()

让我们逐步分析代码示例:

  1. 初始化:Flask 应用程序必须创建一个应用程序实例(在这个例子中是 app),这是第一步。网页服务器将会把来自于客户端的所有请求使用网页服务器网关接口(WSGI,Web Server Gateway Interface)传递给它的应用程序实例。应用程序实例是通过 app = Flask(__name__) 语句创建的。

    把模块名字作为实参传递给 Flask 构造函数是很重要的。Flask 通过这个参数获知应用程序的位置,这个位置后续会被用来定位其它文件,例如静态资源、模板和图片。使用 __name__ 是传递给 Flask 构造函数的约定(约定优先配置),其余的由 Flask 负责。

  2. 路由:一旦一个请求到达了 Flask 程序实例,现在执行一段代码来处理请求是这个实例的责任。这一段代码,通常是一个 Python 函数,被称作处理器。好消息是每一个通常(而不是所有时间)只和一个 URL 关联,这就会让在 Python 函数和 URL 之间定义一一对象的映射成为可能。这个从 URL 到 Python 函数的映射被称作路由。在我们的代码示例中,我们选择了一个简单的方案,通过使用装饰器,来定义这个映射。比如,/hello URL 被映射到 hello 函数,/greeting URL 映射到 greeting 函数。如果我们喜欢把所有路由定义在一个地方,我们可以使用在应用实例上使用 add_url_rule 来定义所有路由。

3.处理器函数:处理器函数在处理完请求后,必须要送出一个回应给客户端。一个回应可以是一个简单的字符串,可以带有也可以不带有 HTML,或者也可以是一个复杂的网页,这个网页可以是静态的页面,也可以是基于模板的动态的页面。在我们的示例代码中,我们返回一个简单的字符串,只为演示目的。

  1. 网页服务器:Flask 应用程序带有一个可以启动的开发服务器,可以使用 app.run() 方法启动,或者使用 flask run 命令 在 shell 中启动 。当我们启动网页服务器后,默认情况下,它会寻找 app.pywsgi.py 模块。如是果我们使用 app.py 当作我们模块的名字(约定,优先配置),模块会被自动加载。但是,如果我们给我们的模块使用了一个不同的名字(在这个例子中,我们就是这么做的),我们必须设置一个环境变量,FLASK_APP=<模块名字>,网页服务器会使用这个变量加载模块。

    如果你使用 Pycharm Pro 等开发环境创建了一个 Flask 项目,环境变量将会是你项目设置的一部分。如果你使用的是命令行,你可以使用下面的命令设置环境变量:

    bash 复制代码
    export FLASK_APP=app1.py # 这是 macOS 和 Linux 的命令
    set FLASK_APP=app1.py   # 这是 Windows 命令

    当服务器启动后,它会在 http://localhost:5000/ 这个 URL 上等待客户端请求。默认情况下,只能在本机访问这个网址。如果我们想使用不同的主机名和端口启动服务器,我们可以使用下面的命令:

    bash 复制代码
    Flask run --host <ip_address> --port <port_num>
  2. 网页客户端:我们可以通过在浏览器地址栏输入网址,或对于简单的请求使用 curl 工具,测试服务器。在这个例子中,我们可以使用下面的 curl 命令测试我们的应用程序:

    bash 复制代码
    curl -X GET http://localhost:5000
    curl -X get http://localhost:5000/greeting

    上面命令的输出结果分别是:

    复制代码
    这个世界会好吗?
    这是世界上最美丽的地方!

以上我们先简单讨论一下 Flask 应用的基础。还请关注后续深入的探讨。

<完>

相关推荐
数据智能老司机5 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机6 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机6 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机6 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i6 小时前
drf初步梳理
python·django
每日AI新事件6 小时前
python的异步函数
python
这里有鱼汤7 小时前
miniQMT下载历史行情数据太慢怎么办?一招提速10倍!
前端·python
databook17 小时前
Manim实现脉冲闪烁特效
后端·python·动效
程序设计实验室17 小时前
2025年了,在 Django 之外,Python Web 框架还能怎么选?
python
倔强青铜三18 小时前
苦练Python第46天:文件写入与上下文管理器
人工智能·python·面试