开发过程中遇到的关于flask的相关问题(flask入门教程,flask CORS跨域访问、base64解码为图像、PIL、CV2和bytes之间格式转换)

article/2023/6/4 14:50:21

1、flask入门上手教程

我主要目的是快速开发,因此学习flask是随便找的一个教程跟着做了下,而没有系统地学习,大概差不多了就去按自己需求进行开发了。

以下是我跟的一个简单教程,讲述了如何快速部署一个简单的python服务器,如何根据域名访问对应资源页面等内容,对我的需求来说足够了

python上手–flask框架web开发实践

2、CORS跨域

上述flask教程前后端是混合的,与本人的设想的前后端分离不符,之后理所当然地遇见了CORS跨域问题

可以通过flask解决跨域问题,需要安装flask-cors 包

pip install -U flask-cors 

然后导入以下工具

from flask_cors import CORS, cross_origin

了解到主要有两种最基本的跨域方式,一是使用CORS函数

CORS(app) #允许所有路由上的所有域的CORS
cors = CORS(app, resources={r"/api/*": {"origins": "*"}})#控制特定资源才能CORS

二是使用@cross_origin装饰器

@app.route("/")
@cross_origin()
def helloWorld():return "Hello, cross-origin-world!"

参考:1、https://blog.csdn.net/qq_27664967/article/details/110508524
2、flask—— flask-cors解决跨域问题

3、base64解码为图像

import os
import base64
from io import BytesIO
from PIL import Image# 输入为base64格式字符串,输出为PIL格式图片
def base64_to_image(base64_str):  image = base64.b64decode(base64_str, altchars=None, validate=False)image = BytesIO(image)image = Image.open(image)return image

在base64转化为图像中,可能会出现转码错误报错:

binascii.Error: Invalid base64-encoded string: number of data characters (7121) cannot be 1 more than a multiple of 4

本人在遇见这个问题时,发现是因为base64字符串中还包含一些其他信息,以下是节选:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAYAAACadoJwAAAgAElEQVR4XrS9abdkx3Etdu7UI7rR6MZAEtSjSFGihmVR/uLltez

可以看出,在字符串前还包含

"data:image/png;base64,"

这些描述信息,我猜想上述报错是因为这些信息,故去除后再进行图像转码,最终成功

4、PIL、CV2和bytes之间格式转换

其后我想把PIL格式转换为cv2格式,寻得以下解决方案:

PIL、cv2、bytes三种图片格式相互转换

http://www.ngui.cc/article/show-1007620.html

相关文章

“全球首款旗舰”填补行业空白,两轮电动车技术创新为何只看绿源?

作者 | 曾响铃 文 | 响铃说 乒乓作为我们的“国球”,在数不清的体育赛事里书写辉煌战绩,也进一步被国人熟知、热爱。更难能可贵的是“国球”精神:“别人可能练了一千次,而我们却练了一万次”,冠军品质,奋…

java--基于XML或者注解AOP

1、基于动态代理实现 动态代理实现基本方式:https://blog.csdn.net/qq_34577961/article/details/128162372 2、面向切面AOP 2.1、基本步骤思路 1、引入依赖 基本依赖配置https://blog.csdn.net/qq_34577961/article/details/129152040?csdn_share_tail%7B%22…

内存泄漏 定位方法

目录 内存概念 物理内存 虚拟内存 内存泄漏 定位方法和手段 1.MemInFo MemTotal MemFree MemAvailable Cached 2 vmalloc info 3.Kmemleak 算法原理 使用方法 参考文献与链接: 如果你点进这篇文章,那么要么你是一个C\C程序员,…

如何通过检测微芯片操作来对抗硬件木马

在他们的项目中,研究人员拍摄了数千张微芯片的显微图像。图为采用金色芯片封装的芯片。被检查的芯片面积只有两平方毫米左右。 来自德国波鸿鲁尔大学和马克斯普朗克安全与隐私研究所 (MPI-SP) 的研究人员正在开创创新的检测技术来对抗这些硬件木马。 他们的先进算…

未佩戴安全带智能识别 opencv

未佩戴安全带智能识别通过pythonopencv网络模型识别分析技术,未佩戴安全带智能识别自动识别现场工地作业人员高空作业是否按要求佩戴安全带,不需人为干预自动抓拍告警同步提醒后台人员及时处理。OpenCV的全称是Open Source Computer Vision Library&…

WLAN速度突然变慢

目录 一、问题 二、在设置中重置网络 1. 按下组合键“WinI”打开设置,在设置窗口中点击“网络和Internet”。 2、点击左侧的“状态”,在右侧选择“网络重置”。 3、然后会进入“网络重置”页面,点击“立即重置”后点击“是”等待完成即可…

记一次悲催的负优化被清词经历以及自救过程

事情起因 事情的起因是这样的,我有一款产品运营了将近一年,经过产品迭代和不断优化,产品的新增逐渐增加起来,就在上个月好不容易迎来小高潮,在某个地区的几个热词排行里分别进了第 3 名 和 第 5 名。从此新增数据水涨…

vue2_mix混入的用法

文章目录背景minx混入使用1.定义了一个mix.js2. 定义一个组件混入mixmix的同享组件作用域this相同使用场景结尾背景 多个vue文件出现大量重复的函数和生命周期处理时使用mix混入 minx混入 当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选…

正则表达式学习,及部分样例

对于正则表达式,相信很多人都知道,但是很多人的第一感觉就是难学, 因为看第一眼时,觉得完全没有规律可寻,而且全是一堆各种各样的特殊 符号,完全不知所云。 其实只是对正则不了解而以,了解了你就会发现,原来就这样啊正则所用 的相关字符其实不多, 也不难记,更不难懂,…

Mysql快速上手一(基础知识、数据模型、数据类型、SQL语句)

文章目录MySQL基础知识基本概念本地mysql服务启动与停止客户端连接mysql数据模型关系型数据库数据模型数据类型SQL语句DDL表操作库操作DMLDQLDCL参考资料作为笔记,后面会持续更新该方面MySQL基础知识 基本概念 本地mysql服务启动与停止 这里的mysq对应的是window…