所有 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)