Flask学习笔记(三):基于Flask框架上传特征值(相关数据)到服务器端并保存为txt文件

简介: 这篇博客文章是关于如何使用Flask框架上传特征值数据到服务器端,并将其保存为txt文件的教程。

关键模块

b64decode

import base64
base64.b64decode(s, altchars=None, validate=False)

参数

  • s:要被解码的对象
  • altchars:必须是长度为2的bytes-like类型对象或ASCII字符串,它指定“+”和“/”字符的替代字母表。

返回的指为字节或者bytes

b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x00\x00\x01\x00\x01\x00\x00\xff\xdb\x00C\x00\x02\x01\x01\x01\x01\x01\x02\x01\x0

np.fromstring

将字符串或者字节转换成ascll码

import numpy as np
np.fromstring(str/bytes, dtype=np.uint8)

客户端

import requests
import json

# API地址
url = "http://10.16.55.26:8000/feature"
feature =[-130.875, -51.84375, 63.53125, -9.265625, 9.59375, -113.3125, -127.625, -20.5, 103.4375]
id = 2
time='123'
cameraid='camera4'
conf = 0.95
# 拼接参数
files = {'file': feature,'id': id,'time':time,'cameraid':str(cameraid),'conf':str(conf)}
fff=json.dumps(files, ensure_ascii=False)
# 发送post请求到服务器端json.dumps(files, ensure_ascii=False)
# # r = requests.post(url, json=json.dumps(files, ensure_ascii=False))
r = requests.post(url, json=fff)
print('200为成功 500为失败',r.status_code)
print(type(json.dumps(files, ensure_ascii=False)))

服务器端

from flask import request
from flask import Flask
import json,os
import numpy as np
import pickle
import cv2
import base64
from gevent.pywsgi import WSGIServer

app = Flask(__name__)

# 定义路由 flask的路由函数是一定要有返回值的,在不执行if的时候也需要加上返回值
@app.route("/feature", methods=['POST'])
def get_frame():
    filename=request.get_json()
    if (isinstance(filename,str)):
        filname1=json.loads(filename)
        print(filname1)
        feature_data=filname1['file']
        id=filname1['id']
        time=filname1['time']
        cameraid=filname1['cameraid']
        conf=filname1['conf']
        if cameraid=='camera1':
            f = open('F:\pycharm\client\camera1.txt','w') # a只写到最后,不可读 a+两者都可以
            f.write(str(feature_data)+'/'+str(id)+'/'+str(time)+'/'+str(cameraid)+'/'+str(conf)+'\n')
        elif cameraid=='camera2':
            f = open('F:\pycharm\client\camera2.txt','w') # a只写到最后,不可读 a+两者都可以
            f.write(str(feature_data)+'/'+str(id)+'/'+str(time)+'/'+str(cameraid)+'/'+str(conf)+'\n')
        elif cameraid=='camera3':
            f = open('F:\pycharm\client\camera3.txt','w') # a只写到最后,不可读 a+两者都可以
            f.write(str(feature_data)+'/'+str(id)+'/'+str(time)+'/'+str(cameraid)+'/'+str(conf)+'\n')
        else:
            f = open('F:\pycharm\client\camera4.txt','w') # a只写到最后,不可读 a+两者都可以
            f.write(str(feature_data)+'/'+str(id)+'/'+str(time)+'/'+str(cameraid)+'/'+str(conf)+'\n')
    else:
        print('the params is not str')
    # linedata2=open('F:\pycharm\client\camera2.txt','r')
    # for line in linedata2:
    #     for i in line.split('/'):
    #         print(i)
    print('cameraid is :',cameraid)
    json_info = json.dumps(dic, ensure_ascii=False) #将python对象编码成Json字符串 ensure_ascii=True:默认输出ASCLL码,如果把这个该成False,就可以输出中文。
    return json_info

if __name__ == "__main__":
    dic = {}
    app.run(host='10.16.55.26',port=8000)

效果如下
在这里插入图片描述
在这里插入图片描述

目录
相关文章
|
1月前
|
Java
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
74 9
|
1月前
|
XML 前端开发 JavaScript
PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑
本文深入探讨了PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑;Ajax则通过异步请求实现页面无刷新更新。文中详细介绍了两者的工作原理、数据传输格式选择、具体实现方法及实际应用案例,如实时数据更新、表单验证与提交、动态加载内容等。同时,针对跨域问题、数据安全与性能优化提出了建议。总结指出,PHP与Ajax的结合能显著提升Web应用的效率和用户体验。
48 3
|
28天前
|
存储 运维 算法
服务器数据恢复—raid6阵列硬盘重组raid5阵列如何恢复raid6阵列数据?
服务器存储数据恢复环境: 存储中有一组由12块硬盘组建的RAID6阵列,上层linux操作系统+EXT3文件系统,该存储划分3个LUN。 服务器存储故障&分析: 存储中RAID6阵列不可用。为了抢救数据,运维人员使用原始RAID中的部分硬盘重新组建RAID并进行了初始化。 初始化开始一段时间后,运维人员察觉到情况有异后强制终止初始化,这个时候初始化已经完成一半以上。数据部分已被不可逆的破坏。
|
2月前
|
存储 数据挖掘
服务器数据恢复—用RAID5阵列中部分盘重建RAID5如何恢复原raid5阵列数据?
服务器数据恢复环境: 一台服务器挂接一台存储,该存储中有一组由5块硬盘组建的RAID5阵列。 服务器故障: 存储raid5阵列中有一块硬盘掉线。由于RAID5的特性,阵列并没有出现问题。工作一段时间后,服务器出现故障,用户方请人维修。维修人员在没有了解故障磁盘阵列环境的情况下,用另外4块硬盘(除去掉线的硬盘)重新创建了一组全新的RAID5阵列并完成数据同步,导致原raid5阵列数据全部丢失。
|
2月前
|
前端开发 Docker 容器
主机host服务器和Docker容器之间的文件互传方法汇总
Docker 成为前端工具,可实现跨设备兼容。本文介绍主机与 Docker 容器/镜像间文件传输的三种方法:1. 构建镜像时使用 `COPY` 或 `ADD` 指令;2. 启动容器时使用 `-v` 挂载卷;3. 运行时使用 `docker cp` 命令。每种方法适用于不同场景,如静态文件打包、开发时文件同步及临时文件传输。注意权限问题、容器停止后的文件传输及性能影响。
560 0
|
3天前
|
人工智能 JSON Linux
利用阿里云GPU加速服务器实现pdf转换为markdown格式
随着AI模型的发展,GPU需求日益增长,尤其是个人学习和研究。直接购置硬件成本高且更新快,建议选择阿里云等提供的GPU加速型服务器。
利用阿里云GPU加速服务器实现pdf转换为markdown格式
|
2天前
|
开发框架 缓存 .NET
阿里云轻量应用服务器、经济型e、通用算力型u1实例怎么选?区别及选择参考
在阿里云目前的活动中,价格比较优惠的云服务器有轻量应用服务器2核2G3M带宽68元1年,经济型e实例2核2G3M带宽99元1年,通用算力型u1实例2核4G5M带宽199元1年,这几个云服务器是用户关注度最高的。有的新手用户由于是初次使用阿里云服务器,对于轻量应用服务器、经济型e、通用算力型u1实例的相关性能并不是很清楚,本文为大家做个简单的介绍和对比,以供参考。
|
10天前
|
弹性计算 运维 安全
阿里云轻量应用服务器与ECS的区别及选择指南
轻量应用服务器和云服务器ECS(Elastic Compute Service)是两款颇受欢迎的产品。本文将对这两者进行详细的对比,帮助用户更好地理解它们之间的区别,并根据自身需求做出明智的选择。
|
11天前
|
SQL 弹性计算 安全
阿里云上云优选与飞天加速计划活动区别及购买云服务器后续必做功课参考
对于很多用户来说,购买云服务器通常都是通过阿里云当下的各种活动来购买,这就有必要了解这些活动的区别,同时由于活动内的云服务器购买之后还需要单独购买并挂载数据盘,还需要设置远程密码以及安全组等操作之后才能正常使用云服务器。本文就为大家介绍一下目前比较热门的上云优选与飞天加速计划两个活动的区别,以及通过活动来购买云服务器之后的一些必做功课,确保云服务器可以正常使用,以供参考。
|
14天前
|
弹性计算 安全 开发工具
灵码评测-阿里云提供的ECS python3 sdk做安全组管理
批量变更阿里云ECS安全组策略(批量变更)