效果图:
1.安装fastaip
pip install fastapi
pip install uvicorn
还没入门的小伙伴建议看fastapi官方文档
2. get请求(以查收录为列)
(1)导入已经写好的查收录模块和其他模块
import time import uvicorn from fastapi import FastAPI, File, UploadFile
import shoulu # 提前已经写好的程序
(2)创建app对象(和flask差不多)
app = FastAPI()
(3)构建get请求
@app.get("/收录/{url:path}",tags=['收录查询(单条版)']) def urls(url:str): return {"查询结果":shoulu.MyReq(url=url)}
(4)构建函数
def urls(url:str): return {"查询结果":shoulu.MyReq(url=url)}
(5)运行fastapi
if __name__ == '__main__': uvicorn.run(app='你的当前文件名:app', host="127.0.0.1", port=8007, reload=True, debug=True) # reload=True表示文件更新会自动刷新
完整版 需要注意的是
1.shoulu.MyReq(url=url)这个函数必须有返回值否之得不到结果(做测试环境可以返回一个特定的字符串,等调试好了再返回正确结果)
2.运行fastapi时 app='你的当前文件名:app'
import time
import uvicorn
from fastapi import FastAPI, File, UploadFile
import shoulu
app = FastAPI()
@app.get("/收录/{url:path}",tags=['收录查询(单条版)'])
def urls(url:str):
return {"查询结果":shoulu.MyReq(url=url)}
if __name__ == '__main__':
uvicorn.run(app='slf:app', host="127.0.0.1", port=8007, reload=True, debug=True)
3.(post文件 以查询状态码为列)
导入状态码查询包
import 状态码查询 #(提前写好的)
创建app对象
app = FastAPI()
构建post请求接受文件
@app.post("/lj_state/{text}",tags=['链接状态码查询(file:csv/txt)'],response_class=FileResponse)
函数部分
async def urls(file: UploadFile = File(...)): # 传文件必须用 UploadFile start = time.time() path = file.filename # 获取文件名 # 先写入本地再读取 content = await file.read() # 读取文件 with open(path, mode='wb') as f: f.write(content) with open(path, mode='r', encoding='utf-8') as f: kwd_list = f.read().splitlines() # print(kwd_list) date = int(time.time()) f_name = f'链接状态码查询结果-{date}.csv' 状态码查询.api_fun(kwd_list,f_name) # 返回一个文件 return FileResponse(f_name,filename=f_name)
# 整体代码
import time
import uvicorn
from fastapi import FastAPI, File, UploadFile
from starlette.responses import FileResponse
app = FastAPI()
import 状态码查询
@app.post("/lj_state/{text}",tags=['链接状态码查询(file:csv/txt)'],response_class=FileResponse)
async def urls(file: UploadFile = File(...)):
start = time.time()
path = file.filename
# 先写入本地再读取
content = await file.read()
with open(path, mode='wb') as f:
f.write(content)
with open(path, mode='r', encoding='utf-8') as f:
kwd_list = f.read().splitlines()
# print(kwd_list)
date = int(time.time())
f_name = f'链接状态码查询结果-{date}.csv'
状态码查询.api_fun(kwd_list,f_name)
# 返回一个文件
return FileResponse(f_name,filename=f_name)
if __name__ == '__main__':
uvicorn.run(app='slf:app', host="127.0.0.1", port=8007, reload=True, debug=True)
同理可以得到各种api接口,传多种文件批处理等
这就是fastapi快速搭建api工具的两种请求方法了
以上内容用做个人笔记和分享学习
如果有问题欢迎私信交流:wv:py-open-cv