使用 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/