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

ops/2024/9/25 2:09:29/

准备工作:

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/ops/25128.html

相关文章

Visual Studio C++ 示例

Visual Studio C++ 示例 项目2023/06/163 个参与者反馈 本文内容 GitHub 上的存档 C++ 示例ATL 示例CLR 和语言示例 - Windows 窗体COM 事件示例显示另外 13 个 Visual Studio C++ 示例可在 Web 上找到。 Microsoft 已生成许多 C++ 示例,这些示例演示了跨多种技术的不同功能…

React、React Router 和 Redux 常用Hooks 总结,提升您的开发效率!

Hooks 是 React 16.8 中引入的一种新特性,它使得函数组件可以使用 state 和其他 React 特性,从而大大提高了函数组件的灵活性和功能性。下面分别总结React、React Router 、Redux中常用的Hooks。 常用Hooks速记 React Hooks useState:用于…

MATLAB的几种边缘检测算子(Sobel、Prewitt、Laplacian)

MATLAB的几种边缘检测算子(Sobel、Prewitt、Laplacian) clc;close all;clear all;warning off;%清除变量 rand(seed, 100); randn(seed, 100); format long g;% 读取图像 image imread(lena.png); % 转换为灰度图像 gray_image rgb2gray(image); % 转换为double类型以进行计算…

ADB 命令获取Android 设备的屏幕分辨率和屏幕像素密度

1. 获取屏幕分辨率和像素密度 获取 Android 设备屏幕分辨率: adb shell wm size Physical size: 1440x3120 获取android设备屏幕密度(DPI): adb shell wm density Physical density: 560 打印屏幕相关的详细信息: adb shell dumpsys wi…

vue修改路由meta的标题

项目场景: vue脚手架项目根据不同的条件动态设置路由title 解决方案: javascript const layout [{path: /Detail,component: () > import(/index.vue),name: Detail,meta: {title: ,keepAlive: false,},beforeEnter: (to, from, next) > {if (t…

2022 csp-j 答案(精选题)

主题目 16 - 21题 22 - 27题 28 - 34题 35 -39题 40 - 44题 精选题目 答案及解析 28题 答案:T 解析:考查时间复杂度评估。 31题 答案:A 解析:模拟即可。 32题 答案:B 解析:模拟即可。 34题 答…

前端复习资料

前端复习资料 落叶的位置,谱出一首诗,时间在消逝,我们的故事。 这篇文章呢,整理写给需要的前端同学的。 核心知识,必须掌握的,也是最基础的,譬如浏览器模型,渲染原理,JS…

深度学习论文: MobileNetV4 - Universal Models for the Mobile Ecosystem及其PyTorch实现

深度学习论文: MobileNetV4 - Universal Models for the Mobile Ecosystem及其PyTorch实现 MobileNetV4 - Universal Models for the Mobile Ecosystem PDF: https://arxiv.org/pdf/2404.10518.pdf PyTorch代码: https://github.com/shanglianlm0525/CvPytorch PyTorch代码: ht…