使用fastapi做一个接口,接口的功能是提供给他人调用,并将他人调用的内容落盘保存。
FastAPI是一个用于构建API的现代、快速(高性能)的 web 框架。其基于Starlette(负责 web 部分)和Pydantic(负责数据部分)。fastapi是一个从Starlette继承的类
环境准备:
#安装fastapi
pip install fastapi
#安装ASGI服务器,可以使用Uvicorn或者是Hypercorn
pip install uvicorn
#安装邮件格式
pip install pydantic[email]
#安装表单,接受文件
pip install python-multipart
#确保能够使用yeild
pip install async-exit-stack async-generator
#确保能够生成和验证JWT身份令牌
pip install python-jose[cryptography]f
#确保能够使用hash算法,且使用passlib用户将能够同时从Django应用程序或FastAPI应用程序登录
pip install passlib[bcrypt]
#确保能够使用sqlite数据库
pip install sqlalchemy
from fastapi import FastAPI,Request
##将别的类型的数据装换成json类型的数据
from fastapi.encoders import jsonable_encoder
import os
app = FastAPI()
@app.post("/content")
async def get_content(request:Request=None):
#获得用户的body信息,将传入的内容赋值给data
data = await request.body()
#将data装换为json格式
data = jsonable_encoder(data)
##定义保存用户传入内容的目录
dir=r'C:/Users/huangxinyi/Desktop/apicontenttest/'
if not os.path.exists(dir):
###建立文件目录
os.makedirs(dir)
###定义保存用户传入内容的文件名称,以用户的内容作为文件名
filename = dir+data
##将内容写入文件
with open(filename,'w') as f:
f.write(data)
return data