使用 Quart 开发#

在开发过程中,最好让您的 Quart 应用程序运行起来,这样您就可以直接测试所做的任何更改。如果使用 app.run()quart run 命令或 run_task 方法,重载器会自动在文件更改时重新加载您的应用程序,从而简化开发过程。

Quart run#

使用 quart run 命令是使用 Quart 开发的推荐方法,它将运行由 QUART_APP 环境变量指定的应用程序。例如:

run.py#
from quart import Quart

app = Quart(__name__)

...
$ QUART_APP=run:app quart run

quart run 命令提供 --host--port 选项来指定应用程序的服务地址,以及 --cerfile--keyfile 选项来指定要使用的 SSL 证书。

app.run()#

Quart 类(实例通常命名为 app)具有一个 run() 方法。该方法运行一个开发服务器,自动开启调试模式和代码重载。可以使用以下代码段来运行应用程序:

run.py#
from quart import Quart

app = Quart(__name__)

...

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

if 语句确保这段代码仅在文件直接运行时才执行,即:

$ python run.py

确保它不会在生产环境中运行。

run() 方法提供选项来设置应用程序服务的 hostport,通过 use_reloader=False 来关闭重载器,以及通过 certfilekeyfile 选项来指定 SSL 证书。

注意

run() 方法将创建一个新的事件循环,如果您希望控制事件循环,请使用 run_task 代替。

app.run_task#

Quart 类还具有一个 run_task() 方法,它与 run() 方法具有相同的选项。 run_task 返回一个 asyncio 任务,当等待该任务时,将运行应用程序。这与它不修改事件循环一样有用。可以使用以下方式使用 run_task

run.py#
import asyncio

from quart import Quart

app = Quart(__name__)

...

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

if 语句确保这段代码仅在文件直接运行时才执行,即:

$ python run.py

确保它不会在生产环境中运行。

Curl#

为了在本地测试应用程序,我喜欢使用 Web 浏览器和 curl 命令行工具。我建议您阅读 curl 文档 并且始终使用 -v--verbose 选项。例如:

$ curl -v localhost:5000/