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 应用的基础。还请关注后续深入的探讨。

<完>

相关推荐
萧鼎1 小时前
深入解析 Umi-OCR:高效的免费开源 OCR 文字识别工具
python·ocr·umi-ocr
梦丶晓羽4 小时前
自然语言处理:文本分类
人工智能·python·自然语言处理·文本分类·朴素贝叶斯·逻辑斯谛回归
苏格拉真没有底5 小时前
python实现mqtt消息转Tcp消息
网络·python·tcp/ip
天才测试猿5 小时前
功能测试详解
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
vortex55 小时前
在Kali中使用虚拟环境安装python工具的最佳实践:以 pwncat 为例
linux·python·网络安全·渗透测试·pip·kali
AntBlack6 小时前
Python 打包笔记 : 你别说 ,PyStand 确实简单易上手
后端·python·创业
Pocker_Spades_A7 小时前
Python刷题:Python基础
开发语言·python
上官-王野7 小时前
大模型day01自然语言+大模型+环境
python·ai·conda