用 Python FastAPI 框架快速建立现代 API

举报
宇宙之一粟 发表于 2022/10/30 23:19:03 2022/10/30
【摘要】 前言使用 Python 的众多重要原因之一是 Python 有大量成熟和稳定的库可供选择。例如,Django 和 Flask 提供了很好的网络开发体验和大量的有用文档。FastAPI 是一个快速、轻量级的现代 API,与其他基于 Python 的 Web 框架(如 Flask 和 Django )相比,有一个更容易的学习曲线。FastAPI 相对较新,但它有一个不断增长的社区。它被广泛地用...

前言

使用 Python 的众多重要原因之一是 Python 有大量成熟和稳定的库可供选择。例如,Django 和 Flask 提供了很好的网络开发体验和大量的有用文档。

FastAPI 是一个快速、轻量级的现代 API,与其他基于 Python 的 Web 框架(如 Flask 和 Django )相比,有一个更容易的学习曲线。FastAPI 相对较新,但它有一个不断增长的社区。它被广泛地用于构建网络 API 和部署机器学习模型。

最近,Python 生态系统在 Python 3+ 中才有的新特性的推动下出现了令人兴奋的发展,比如协程和 optional typing 。这个库和框架的新时代承诺了更高的速度和开发的便利性,使 Python、Go和 Rust 这样的新语言并驾齐驱,同时保持了使 Python 如此受欢迎的核心体验。

FastAPI 是一个用于开发网络 API 的新的 Python 框架,在过去几年中得到了普及。如果你打算使用 Python 进行网络开发,熟悉 FastAPI 将对你有好处。

在本教程中,你将使用 FastAPI 为一个远程工作地点的数据库建立一个 API。

在这篇文章中,你将:

  • 从头开始创建一个新的 FastAPI 项目。
  • 创建一个 API,让同伴提交远程工作地点。
  • 使用 ORM 将应用程序的数据保存到一个真正的数据库。

准备好建立你的工具,为你的同伴找到最好的远程工作地点,并在此过程中学习使用现代 Python FastAPI 库。

安装 FastAPI

python -m pip install fastapi uvicorn[standard]

有了这些,你已经安装了 FastAPI 和 Uvicorn,并准备学习如何使用它们。FastAPI 是你用来建立你的 API 的框架,而 Uvicorn 是使用你建立的 API 来服务请求的服务器。有了这些,你已经安装了 FastAPI 和 Uvicorn,并准备学习如何使用它们。FastAPI 是你用来建立你的 API 的框架,而 Uvicorn 是使用你建立的API来服务请求的服务器。

创建项目

首先,在 Python 项目中创建一个新的文件夹,然后创建一个新的虚拟环境:

mkdir fastnomads
cd fashnomads
python3 -m venv env/

这将确保我们安装的 Python 包与项目保持隔离。

激活虚拟环境

source env/bin/activate

现在你可以安装 FastAPI 和 uvicorn,一个 ASGI 服务器。

pip install fastapi uvicorn

开始 HelloWorld 项目

在你深入研究 shops 和库之前,你应该在 FastAPI 中建立并运行传统的 "Hello World "应用程序。这可以让你证明你的初始设置是正常工作的。

打开你喜欢的编辑器,把下面的代码粘贴到一个叫做 main.py 的文件中。你将在剩余的开发过程中使用这个文件。

from fastapi import FastAPI, Depends

app = FastAPI()

@app.get('/')
async def root():
    return {'message': 'Hello World!'}

这五行代码中,你已经创建了一个工作的 API 。如果你曾经使用过 Flask ,这看起来应该非常熟悉。

  • 路由 @app.get('/'): 它告诉 FastAPI,当用户请求/路径时,应该运行以下方法。

  • 方法定义 async def root() : 注意这个异步定义,这个方法将作为一个 Python3 coroutine 运行。如果你想了解更多关于并发性和 async 的信息,FastAPI 本身对整个事情有一个很好的解释,以及是什么让它如此快速。

最后是返回语句,我们将数据发送到浏览器。

    return {'message': 'Hello World!'}

正如你所期望的,访问这个端点将返回一个与上述字典相匹配的JSON响应。

最后,说得够多了,运行服务器看看它的运行情况吧!

uvicorn main:app --reload

说了这么多,可以运行http://127.0.0.1:8000/docs ,运行这个服务器:

{ "message": "Hello World!" }

注意这个异步定义:这个方法将作为一个Python3 coroutine运行。如果你想了解更多关于并发性和async的信息,FastAPI本身对整个事情有一个很好的解释,以及是什么让它如此快速。

最后是返回语句,我们将数据发送到浏览器。

灵感来源:

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。