前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用(Python)FastAPI快速构建你的后端接口服务

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

作者头像
我被狗咬了
发布2020-03-19 11:42:08
8.6K0
发布2020-03-19 11:42:08
举报
文章被收录于专栏:Python乱炖Python乱炖

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

开发环境:Python3.6+

一、安装
代码语言:javascript
复制
pip install fastapi uvicorn
二、构建代码

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

代码语言:javascript
复制
from fastapi import FastAPI, Query

app = FastAPI()

@app.get("/")
def hello():
    return {"Hello": "World"}

@app.get('/user')
async def user(
        *,
        user_id: int = Query(..., title="The ID", gt=0)
):
return {'user_id': user_id}

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

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

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

代码语言:javascript
复制
@app.post('/user/update')
async def update_user(
    *,
    user_id: int,
    really_update: int = Query(...)
):
代码语言:javascript
复制
    return {'user_id': user_id}
代码语言:javascript
复制
三、运行你的接口应用

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

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

代码语言:javascript
复制
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来说,确实方便了很多,希望以后大家也可以多使用它来快速构建自己的后端接口~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python乱炖 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、安装
  • 二、构建代码
  • 三、运行你的接口应用
  • 四、关于文档
  • 五、更多开发指南
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档