Flask 教程

Flask 程序初始化


所有 Flask 程序都必须创建一个程序实例。Web 服务器使用一种名为 Web 服务器网关接口(Web Server Gateway Interface,WSGI)的协议,把接收自客户端的所有请求都转交给这个对象处理。

Flask 初始化应用程序

程序实例是 Flask 类的对象,经常使用下述代码创建:

from flask import Flask

app = Flask(__name__)


@app.route('/')
def hello_world():
    return 'Hello World!'


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

Flask 类的构造函数只有一个必须指定的参数,即程序主模块或包的名字。在大多数程序中,Python 的 __name__ 变量就是所需的值。

在项目中导入 Flask 模块是强制性的。Flask 类的一个对象是 WSGI 应用程序。

Flask 构造函数将当前模块的名称(__name__)作为参数。

Flask 类的route()函数是一个装饰器,它告诉应用程序哪个 URL 应该调用相关的函数。

app.route(rule, options)
  • rule 参数表示与该函数绑定的 URL。
  • options 是要转发给底层 Rule 对象的参数列表。

在上面的例子中,'/' URL 与 hello_world() 方法绑定。因此,在浏览器中打开 Web 服务器的主页时,将呈现此函数的输出。

最后,Flask 类的 run() 方法在本地开发服务器上运行应用程序。

app.run(host, port, debug, options)

上面方法中的所有参数都是可选的,作用如下表描述说明。

编号 参数 描述
1 host 监听的主机名。默认为127.0.0.1(localhost)。设置为'0.0.0.0'使服务器在外部可用
2 port 监听端口号,默认为:5000
3 debug 默认为:false。如果设置为:true,则提供调试信息
4 options 被转发到底层的 Werkzeug 服务器。

启动程序如下:

venv/bin/python -m flask run

调试模式

Flask 应用程序通过调用 run() 方法来启动。但是,当应用程序正在开发中时,应该为代码中的每个更改手动重新启动它。为了避免这种不便,可以启用调试支持。如果代码改变,服务器将自动重新加载。它还将提供一个有用的调试器来跟踪应用程序中的错误(如果有的话)。

在运行或将调试参数传递给 run() 方法之前,通过将应用程序对象的调试属性设置为 True 来启用调试模式。

app.debug = True
app.run()
app.run(debug = True)