使用 Quart 开发#
在开发过程中,最好让您的 Quart 应用程序运行起来,这样您就可以直接测试所做的任何更改。如果使用 app.run()、quart run 命令或 run_task 方法,重载器会自动在文件更改时重新加载您的应用程序,从而简化开发过程。
Quart run#
使用 quart run 命令是使用 Quart 开发的推荐方法,它将运行由 QUART_APP 环境变量指定的应用程序。例如:
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() 方法。该方法运行一个开发服务器,自动开启调试模式和代码重载。可以使用以下代码段来运行应用程序:
from quart import Quart
app = Quart(__name__)
...
if __name__ == "__main__":
app.run()
if 语句确保这段代码仅在文件直接运行时才执行,即:
$ python run.py
确保它不会在生产环境中运行。
run() 方法提供选项来设置应用程序服务的 host 和 port,通过 use_reloader=False 来关闭重载器,以及通过 certfile 和 keyfile 选项来指定 SSL 证书。
注意
run() 方法将创建一个新的事件循环,如果您希望控制事件循环,请使用 run_task 代替。
app.run_task#
Quart 类还具有一个 run_task() 方法,它与 run() 方法具有相同的选项。 run_task 返回一个 asyncio 任务,当等待该任务时,将运行应用程序。这与它不修改事件循环一样有用。可以使用以下方式使用 run_task:
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/