赞
踩
【计算机网络基础——系列1】-matlab与python使用socket udp进行进程间通信
【计算机网络基础——系列2】-matlab与python使用socket tcp进行进程间通信
【计算机网络基础——系列3】输入url后页面会遇到的问题
【计算机网络基础——系列4】关于HTTP请求的相关内容
【计算机网络基础——系列5】前端遇到的三种网络攻击
【计算机网络基础——系列6】浏览器缓存之cookie、session、localstorage
【计算机网络基础——系列7】浏览器缓存之—http缓存
【计算机网络基础——系列8】前端优化总结
【计算机网络基础——系列9】restful规范;dns劫持
【计算机网络基础——系列10】osi网络结构;tcp协议保持传输的可靠性;SSL
【计算机网络基础——系列11】实现python作为服务端与qt进行udp通信
【计算机网络基础——系列12】flask作为服务器与vue实现websocket通信
【计算机网络基础——系列13】python操作数据库储存图片,取出图片放到前端页面展示
竞赛要求,要使用angular.js实现app,其中有一个功能是实现图片存入数据库,并能在app中展示。
提示:以下是本篇文章正文内容,下面案例可供参考
import json
from flask import Flask, jsonify, request # 引入核心处理模块
from flask_cors import CORS
import base64
import time
import pymysql
fin = open("./222.jpg",'rb') #'rb'加上才能将图片读取为二进制
img = fin.read()#将二进制数据读取到img中
img_stream = base64.b64encode(img)
print('picture',img_stream)
print('picturetype',type(img_stream))
fin.close()
img_stream = base64.b64encode(database.get_image( "id =\"" + '2' + "\""))
s = img_stream.decode()
return jsonify({'ok': s}) # 返回JSON格式的数据
类名为Database
class Database():
def __init__(self):
self.connection = pymysql.connect(host="127.0.0.1",user= "root", password="123456",database= "wk",charset='utf8',use_unicode=True)
self.cursor = self.connection.cursor()
tablename
为创建的数据表的名字;blob
格式);self.cursor.execute(sql)
开始创建 def create_slx(self,tablename): # 创建表格
print("创建表tablename:" + tablename)
sql = """
CREATE TABLE IF NOT EXISTS %s(
id VARCHAR(255) NOT NULL,
data VARCHAR(255) NOT NULL,
image longblob
)CHARACTER SET utf8 COLLATE utf8_general_ci
""" % (tablename)
self.cursor.execute(sql)
print('创建表格结束')
def insert_image(self, id,datas,image):
sql = "insert into picture(id,datas,image) values(%s,%s,%s)"
imagee=(id,datas,image)
self.cursor.execute(sql, imagee)
self.connection.commit()
如下所示:
def get_image(self,path,where_condition):
sql ="""select * from picture where %s""" % (where_condition)
self.cursor.execute(sql)
image = self.cursor.fetchone()[2]
print('sucess111',image)
with open(path, "wb") as file:
file.write(image)
except pymysql.Error:
print(pymysql.Error)
except IOError:
print(IOError)
return image
database = Database()
database.create_slx(“picture”)
database.insert_image(2, 626, img)
database.get_image( “id =”" + ‘2’ + “”")
@app.route('/login', methods=['POST']) # 登录
def login():
database = Database()
database.create_slx("picture")
database.insert_image(2, 626, img)
database.get_image( "id =\"" + '2' + "\"")
print("进入登陆查询")
req = request.get_json()
print(req)
img_stream = base64.b64encode(database.get_image( "id =\"" + '2' + "\""))
s = img_stream.decode()
return jsonify({'ok': s}) # 返回JSON格式的数据
picture.src= 'data:image/png;base64,' + dat
实现将图片以base64
格式挂载上视图。.ts
var dict=1 var dat $.ajax({ type: "POST", url: "http://localhost:5000/login", contentType: 'application/json; charset=UTF-8', data: JSON.stringify(dict) , dataType: "json", success: function(res) { dat=res['ok']; var picture = document.createElement('img'); // 创建一个img元素 // 该img元素将会成为 id 为 pictureLocation 的 div 的孩子,需获取这个元素 var d1 = document.getElementById('pictureLocation'); // 设置这个img元素的一些属性 // img元素的 src 尤为重要: // img.ok中存储的是图片的base64,且图片原先的格式是png;在 src 中均有体现 picture.src = 'data:image/png;base64,' + dat; picture.alt = ""; picture.width = 100; picture.height = 100; d1.appendChild(picture); console.log('rec',dat) }, error: function(xhr, type) { } });
.html
<div id="pictureLocation">
picture
</div>
check the manual that corresponds to your MySQL server version for the right syntax
takes 1 positional argument but 2 were given
self
, id,datas,image):AttributeError: 'NoneType' object has no attribute 'encode'
Column count doesn‘t match value count at row 1
这个网站可以实现base64转图片,也可图片转base64,还有其他各种格式的相互转换,便于测试base64的格式正确。
码字不易~, 各位看官要是看爽了,可不可以三连走一波,点赞皆有好运!,不点赞也有哈哈哈~~~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。