利用 Python FastAPI 框架 实现 接收前端上传的文件 并 保存至本地服务器

项目需求:实现 批量导入 功能

 

需求拆分:

1.接收前端上传的excel文件

2.保存excel文件至本地服务器

3.将excel文件写入Mysql数据库

 

后端技术:Python FastAPI 框架

 

实验前提:

1.已经完成Linux虚拟机的虚拟环境的搭建

2.已经完成Pycharm远程连接Linux虚拟环境

3.已经完成FastAPI基础环境的搭建

 

功能实现:

(1).创建目录

# 创建目录,用于存放从前端获取的文件
[root@localhost rop_test]# mkdir -p test/file

(2).编写代码

from fastapi import FastAPI, File, UploadFile, Form

app = FastAPI()

@app.post("/files/")
async def create_file(file: bytes = File(...)):
    return {"file_size": len(file)}

@app.post("/uploadfile/")
async def create_upload_file(file: UploadFile = File(...)):
    return {"filename": file}
Python FastAPI框架中,实现POST请求处理主要包括以下几个步骤: 1. 导入所需模块:首先需要导入`fastapi`、`FastAPI`本身以及可能需要的数据模型(如`Request`和`Body`)。 ```python from fastapi import FastAPI, Request, Body ``` 2. 创建FastAPI应用:初始化一个FastAPI实例,定义路由及对应的处理函数。 ```python app = FastAPI() ``` 3. 定义POST请求的路由:使用`@app.post`装饰器来指定URL路径,通常会包含一个函数作为回调,这个函数将接收来自客户端的请求数据。 ```python @app.post("/items/") async def create_item(item: ItemIn = Body(...)): """ Handle POST request to create a new item. """ # 在这里处理item数据,例如添加到数据库 # item_data = await process_item(item) # ... return {"message": "Item created successfully"} ``` 在这里,`ItemIn`是你自定义的数据模型类,`Body(...)`表示这是一个POST请求体,FastAPI会自动解析验证数据。 4. 数据模型:如果需要,创建用于存储和验证POST数据的模型类(比如JSON Schema),这有助于保持代码结构清晰。 ```python class ItemIn(BaseModel): name: str description: Optional[str] = None ``` 5. 执行处理:在回调函数内部,你可以对请求的数据进行操作,然后返回响应结果。 6. 错误处理:可以使用`HTTPException`来处理错误状态码,提供有用的错误信息给前端。 记得在运行应用程序之前调用`uvicorn.run(app, host="0.0.0.0", port=8000)`来启动服务器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值