在Flask中使用异步和等待

FlaskFlaskBeginner
立即练习

This tutorial is from open-source community. Access the source code

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

本实验将指导你在流行的 Python 网络框架 Flask 中使用 asyncawait 的过程。你将学习如何定义异步视图和处理程序,理解使用异步代码对性能的影响,并探索 Flask 中的后台任务。

注意:你需要自己创建代码文件并在环境中运行它。你可以在 Web 5000 上预览 Flask 服务状态。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL flask(("`Flask`")) -.-> flask/DataHandlingGroup(["`Data Handling`"]) flask(("`Flask`")) -.-> flask/CoreConceptsGroup(["`Core Concepts`"]) flask(("`Flask`")) -.-> flask/DevelopmentToolsGroup(["`Development Tools`"]) flask/DataHandlingGroup -.-> flask/incoming_request_data("`Incoming Request Data`") flask/DataHandlingGroup -.-> flask/response_objects("`Response Objects`") flask/CoreConceptsGroup -.-> flask/application_object("`Application Object`") flask/CoreConceptsGroup -.-> flask/useful_internals("`Useful Internals`") flask/DevelopmentToolsGroup -.-> flask/blueprint_objects("`Blueprint Objects`") flask/DevelopmentToolsGroup -.-> flask/command_line_interface("`Command Line Interface`") subgraph Lab Skills flask/incoming_request_data -.-> lab-136110{{"`在Flask中使用异步和等待`"}} flask/response_objects -.-> lab-136110{{"`在Flask中使用异步和等待`"}} flask/application_object -.-> lab-136110{{"`在Flask中使用异步和等待`"}} flask/useful_internals -.-> lab-136110{{"`在Flask中使用异步和等待`"}} flask/blueprint_objects -.-> lab-136110{{"`在Flask中使用异步和等待`"}} flask/command_line_interface -.-> lab-136110{{"`在Flask中使用异步和等待`"}} end

定义异步视图

在 Flask 中,你可以使用 async def 语法将视图定义为异步函数。这使你能够在视图函数中使用 await 来执行异步操作。

@app.route("/get-data")
async def get_data():
    data = await async_db_query(...)
    return jsonify(data)

要运行此代码,请将其保存在 Python 文件(例如 app.py)中,并使用 Flask 开发服务器执行该文件:

flask run

总结

在本实验中,你学习了如何在 Flask 中使用 asyncawait 来定义异步视图和处理程序。你还探讨了使用异步代码的性能影响、后台任务,以及在异步密集型代码库中使用 Quart 作为 Flask 的替代方案。此外,你了解了 Flask 扩展与异步视图的兼容性,以及在 Flask 中使用其他事件循环的可能性。

您可能感兴趣的其他 Flask 教程