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

devtools/2024/9/25 17:19:01/

准备工作:

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 asyncioasync def semanticTextualDeduplication(request):lineSize = 0try: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 = qif __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、结果:


http://www.ppmy.cn/devtools/19018.html

相关文章

鸿蒙(HarmonyOS)性能优化实战-Trace使用教程

概述 OpenHarmony的DFX子系统提供了为应用框架以及系统底座核心模块的性能打点能力,每一处打点即是一个Trace,其上附带了记录执行时间、运行时格式化数据、进程或线程信息等。开发者可以使用SmartPerf-Host调试工具对Trace进行解析,在其绘制…

BGP的基本概念和工作原理

AS的由来 l Autonomous System 自治系统,为了便于管理规模不断扩大的网络,将网络划分为不同的AS l 不同AS通过AS号区分,AS号取值范围1-65535,其中64512-65535是私有AS号 l IANA机构负责AS号的分发 AS之…

免费的单片机物联网MQTT平台选择

目的是多设备接入中控,平台只做转发。 选择巴法云:巴法科技&巴法云-巴法设备云-巴法物联网云平台 clientId是私钥uid: 多设备 clientId 填同一个 uid 都是可以的。平台应该是加了后缀区分。 支持自定义topic,操作简单&#x…

【Python】深入理解Pandas中的连续变量与分类变量以提升模型训练效果

你啊你,是自在如风的少年 飞在天地间,比梦还遥远 你啊你,飞过了流转的时间 归来的时候,是否还有青春的容颜 🎵 好妹妹《你飞到城市另一边》 引言: 在使用Python进行数据科学和机器学…

web server apache tomcat11-23-APR

前言 整理这个官方翻译的系列,原因是网上大部分的 tomcat 版本比较旧,此版本为 v11 最新的版本。 开源项目 从零手写实现 tomcat minicat 别称【嗅虎】心有猛虎,轻嗅蔷薇。 系列文章 web server apache tomcat11-01-官方文档入门介绍 web…

毅四捕Go设计模式笔记——命令模式

命令模式(Command Pattern) 为了解决什么问题? 命令模式的目的是将请求发起者和请求执行者解耦,使得请求的发起者不需要知道具体的执行者是谁,也不需要知道执行的具体过程,只需要发送请求即可。 通过使用…

数据结构——二叉树的操作 (层序遍历)(C++实现)

数据结构——二叉树的操作(2)(C实现) 统计叶子结点个数统计结点个数层序遍历非递归方式递归方式 我们今天接着来看二叉树的操作,如果还没有看过上一篇的可以点击这里: https://blog.csdn.net/qq_67693066/a…

vulnhub——DC:7

文章目录 信息收集Penetration1、通过web服务获取低权限用户shell2、通过文件信息获取提权方法/opt/scripts/backups.shbackups.sh利用 信息收集 ┌──(root㉿anla)-[~] …