利用Python开发一个上传文件的服务

准备工作:

1、安装uvicorn,利用其来作为web服务器

2、安装Starlette,利用其来作为web开发框架

3、安装python-multipart,让其支持form表达形式的文件上传

4、postman:文件上传的发起者,这样我们就不用写前端界面了

代码:

python 复制代码
import uvicorn
from starlette.applications import Starlette
from starlette.responses import JSONResponse
from starlette.datastructures import UploadFile
from starlette.routing import Route
import asyncio


async def semanticTextualDeduplication(request):
    lineSize = 0
    try:
        form: UploadFile = await request.form()
        file = form["file"]
        contents = await file.read()
        content_str = contents.decode('utf-8')
        lines = content_str.splitlines()
        lineSize = len(lines)
        for line in lines:
            print(line.strip())
    except Exception as e:
        # 处理其他异常
        print("发生了异常:", e)
    return JSONResponse({"lineSize": lineSize})

app = Starlette(
    routes=[
        Route("/api/semanticTextualDeduplication.do", semanticTextualDeduplication, methods=["POST"]),
    ],
)


@app.on_event("startup")
async def startup_event():
    q = asyncio.Queue()
    app.model_queue = q


if __name__ == "__main__":
    uvicorn.run("message_receive:app", host="0.0.0.0", port=8080, access_log=False)

测试:

1、打开postman:

1.1、注意第一个文件参数,需要在输入key以后选择 key的类型为file

2、结果:

相关推荐
番茄去哪了12 分钟前
Python基础入门(二)
linux·服务器·开发语言·python
未来之窗软件服务21 分钟前
AI人工智能(二十一)pt模型转onnx sensvoice—东方仙盟练气期
人工智能·python·仙盟创梦ide·东方仙盟
柒.梧.1 小时前
Java构造器精讲:从基础特征到权限修饰符
开发语言·python
搬砖者(视觉算法工程师)2 小时前
PyApp:一种将 Python 工程打包为可执行文件的简易方法
python
洛的地理研学2 小时前
gma 绘制唐都畿道一府四州
python·gma 教程
张3蜂2 小时前
Python变量与命名规范:从入门到精通
开发语言·python
秦始皇爱找茬2 小时前
Playwright Python Windows 下 headful Chromium 崩溃排查经验分享
python·ui自动化·playwright
十铭忘2 小时前
动作识别12——yolo26s-pose+PoseC3D第1篇之标注工具升级2.0
人工智能·python·深度学习
才兄说3 小时前
机器人租售配合齐不齐?多人同步操作
python
好家伙VCC3 小时前
# 发散创新:基于Python的TTS语音合成实战与优化策略 在人工智能加速落地的今天,**文本转
java·开发语言·人工智能·python