使用(Python)FastAPI快速构建你的后端接口服务

举报
Python爱好者 发表于 2020/12/28 22:51:00 2020/12/28
【摘要】 FastAPI是一个基于 Python 的后端框架,该框架鼓励使用 Pydantic 和 OpenAPI (以前称为 Swagger) 进行文档编制,使用 Docker 进行快速开发和部署以及基于 Starlette 框架进行的简单测试。 开发环境:Python3.6+ 一、安装 pip install fastapi uvicorn 二、构建代码 创建一...

FastAPI是一个基于 Python 的后端框架,该框架鼓励使用 Pydantic 和 OpenAPI (以前称为 Swagger) 进行文档编制,使用 Docker 进行快速开发和部署以及基于 Starlette 框架进行的简单测试。

开发环境:Python3.6+

一、安装

pip install fastapi uvicorn
  

二、构建代码

创建一个main.py文件。引入FastAPI这个模块,就可以构建接口了!


   
  1. from fastapi import FastAPI, Query
  2. app = FastAPI()
  3. @app.get("/")
  4. def hello():
  5. return {"Hello": "World"}
  6. @app.get('/user')
  7. async def user(
  8. *,
  9. user_id: int = Query(..., title="The ID", gt=0)
  10. ):
  11. return {'user_id': user_id}

就和flask一样,实例化app,在每个接口函数上加上路由就可以了。这边写了个简单的hello world可以了解一下。

这里有必要说明一下,例如我们 /user 接口,它在指明参数的时候对参数做了限制,只能使用int类型的数据,这是因为Fast API是基于Pydantic开发的(Pydantic主要就是用来做强制类型检测的)。

除了get,我们也可以创建post接口:


   
  1. @app.post('/user/update')
  2. async def update_user(
  3. *,
  4. user_id: int,
  5. really_update: int = Query(...)
  6. ):
    return {'user_id': user_id}
  

三、运行你的接口应用

和其他的模块不一样的是,FastAPI需要运行指定命令来运行api服务:

需要在当前目录下执行下面的命令,他会主动去找到main入口:

uvicorn main:app --reload

  

运行成功后在浏览器打开http://127.0.0.1:8000

或者http://localhost:8000 ,你就可以拿到hello方法(默认路由)返回的JSON格式响应结果了:

这就是我们刚刚写的hello函数(默认路由)了.

下面我们可以访问一下刚才写的user接口,我们需要传入参数userid(指定整数类型),即可拿到返回值。

四、关于文档

我们创建的应用,FastAPI给我们也创建好相应的接口文档,方便使用者的调用和查看,对开发者来说非常友好,也省去了我们写文档的时间了!

打开http://127.0.0.1:8000/docs,就可以查看你接口的api文档了~

这就是我们刚刚创建的两个接口。

对于每个接口还有详细的说明以及测试请求。

除此之外,Fast API还提供了另一种书写风格说明文档,地址:

http://127.0.0.1:8000/redoc

五、更多开发指南

欢迎参考官网:https://fastapi.tiangolo.com/

以上便是FastAPI的入门指南,对于Django或是Flask来说,确实方便了很多,希望以后大家也可以多使用它来快速构建自己的后端接口~

大家如果想更多的了解Fast API的话,欢迎加入我的交流群。

回复「进群」即可进入Python技术交流群。

  

“扫一扫,获取更多有意思的内容”

文章来源: blog.csdn.net,作者:敲代码的灰太狼,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/tongtongjing1765/article/details/104832401

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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