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三种图片格式相互转换