本文浅用MYSQL和REDIS储存信息,然后保存至XLSL格式文件内
本次实验使用的第三方库以及版本信息如下:
python 3.8
oss2 2.15.0
openpyxl 3.0.5
mysql 0.0.3
redis 4.0.2
# coding=utf-8
import oss2
import openpyxl
import MySQLdb
import redis
其中 # coding=utf-8 为中文编码要求,在所有代码前加上,确保代码里面的中文字符也可以识别
#mysql连接
conn = MySQLdb.connect("192.168.xxx.xxx", "xxx", "xxx", db='xxx',charset='utf8')
cur = conn.cursor()
连接mysql数据库前请确保mysql服务开启,而且允许远程登录,具体教程参考:
https://jingyan.baidu.com/article/647f01151bbf617f2148a8d8.html
然后connect连接选项中
第一个参数为mysql数据库所在IP地址
第二个参数为mysql数据库用户名
第三个参数为mysql数据库密码
第四个参数为连接mysql数据库的名字(*如没有需要在mysql中create一个)
第五个参数为中文识别符
如经常出现计算机积极拒绝访问可以自己上网搜索答案,错误方法不固定,都尝试一下
#创建表格
# sql="""create table poet (
# title VARCHAR(30) ,
# name VARCHAR(20),
# content VARCHAR(1000)
# )"""
# cur.execute(sql)
#插入数据
# cur.execute("insert into poet (title,name,content) values('Bird collection','Tagore','Let life be beautiful like summer flowers')")
# conn.commit()
#查询数据
sql = "select * from poet"
#执行SQL语句
cur.execute(sql)
# 获取所有记录列表
results = cur.fetchall()
for row in results:
title = row[0]
name = row[1]
content = row[2]
# 打印结果
# print (title, name, content)
#删除表格
# cur.execute("drop table poet")
# conn.commit()
这里展示了如何使用python向mysql中插入一段内容,这里以泰戈尔的诗句为例子。
*这里注释掉是因为防止重复插入相同的数据,污染数据库内容*
#创建xlsx表格
# wb = openpyxl.Workbook()
#此处为创建页,如sheet1等
# wb.create_sheet('xxx')
#此处为保存到指定的文件中
# wb.save('xxx.xlsx')
#xlsx表格写入数据
# wb = openpyxl.load_workbook('xxx.xlsx')
# mysheet = wb['xxx']
# mysheet['A1'] = 'title:'
# mysheet['A2'] = 'name:'
# mysheet['A3'] = 'content:'
#mysql数据写入
# results = cur.fetchall()
# for row in results:
# mysheet['B1'] = row[0]
# mysheet['B2'] = row[1]
# mysheet['B3'] = row[2]
# wb.save('xxx.xlsx')
此处的xxx均为自己数值,需要自己看情况处理,没有的就创建
由于学识尚浅,此处的操作均为对单元格单个格子进行操作,可以自行改善
#redis连接
conn = redis.Redis(host='192.168.xxx.xxx',password=xxx, port=xxx)
# conn.set('poet2', 'death like autumn leaves')
# print(str(conn.get('poet2')).split("'")[1])
连接redis数据库前请确保redis服务开启,而且允许远程登录,具体教程参考:
https://www.cnblogs.com/liuxiutianxia/p/11057120.html
然后connect连接选项中
第一个参数为redis数据库所在IP地址
第二个参数为redis数据库密码
第三个参数为redis数据库端口号
同时,计算机积极拒绝访问的方式也是多种多样,需要自行排查。
#redis数据写出
wb = openpyxl.load_workbook('xxx.xlsx')
mysheet = wb['poet1']
new_poet = str(mysheet.cell(3, 2).value)+' and '+str(conn.get('poet2')).split("'")[1]
mysheet['B3']= new_poet
print(new_poet)
wb.save('xxx.xlsx')
其中的数据写入文本文档是符合了自己的数据要求,如需要其他数据的写入写出,需要自行的修改,本文只展示了简单的实现
#OSS信息
#根据自己的oss账号的信息填写下列信息
AccessKeyID = 'xxx'
AccessKeySecret = 'xxx'
EndPoint = 'xxx'
BucketName = 'xxx'
#Oss上传
def Oss(img_name, img_path):
auth = oss2.Auth(AccessKeyID, AccessKeySecret)
bucket = oss2.Bucket(auth, EndPoint, BucketName)
bucket.put_object_from_file(img_name, img_path)
if __name__=="__main__":
#此处为需要上传的文件地址
img_path = 'xxx'
#此处为需要上传的文件的名字
img_name = 'xxx'
Oss(img_name, img_path)
此处使用的是阿里云的OSS储存,具体使用方法可以上官网的帮助手册里面可以查询:
https://help.aliyun.com/document_detail/31893.html
自此就完成了将MYSQL和REDIS的数据保存上传到OSS中
以上为新手对MYSQL,REDIS,OSS,XLSL互相使用的一点自我理解,希望可以帮到更多的正在学习的人