一、背景
当前由于多个脚本涉及到账户登陆,同时账号密码存在不断修改的情况,为避免多处修改,现计划将账户信息放到数据库中,后续所有账号信息均从数据库中去读取。
二、本文主要结构
创建测试账户
库表中插入记录
三、代码
1、创建测试账户的表
(1)创建账户前,查看数据库是否存在目标表
(2)执行创建表的脚本
import pymysql
def creat_user_table():
"""
功能:判断是否存在表ecu_test_account是否存在,如不存在则创建表格
:return:
"""
#数据库的信息根据实际情况填写
db = pymysql.connect(host="X.X.X.X",port= 3306,user="user", password="passwork",db="dbname")
cursor = db.cursor()
show_table_sql = '''show tables like "xxx_test_account";'''
cursor.execute(show_table_sql)
data = cursor.fetchall()
create_ecu_test_account_sql = """CREATE TABLE `xxx_test_account` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`env` varchar(10) NOT NULL DEFAULT 'test' COMMENT '所在环境',
`user_name` varchar(20) NOT NULL DEFAULT '' COMMENT '账户名',
`pw` varchar(255) NOT NULL DEFAULT '' COMMENT '密码',
`enc` varchar(255) NOT NULL DEFAULT '' COMMENT '加密密码',
`status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态;1:正常;0删除',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8mb4 COMMENT='测试同学的账号信息';"""
print(data)
#如果查询,不存在该表则创建表
if not data:
cursor.execute(create_ecu_test_account_sql)
print('ok table')
db.commit()
db.close()
cursor.close()
执行完毕之后,检查表格创建完毕:
2、插入表格记录
def insert_user_account(env, user_name, pw, enc):
"""
功能:表格中插入记录
:param env: 环境
:param user_name: 账户名
:param pw: 密码
:param enc: 加密的密码
:return:
"""
db = pymysql.connect(host="X.X.X.X", port=3306, user="X", password="X", db="dbname")
cursor = db.cursor()
insert_sql = f"INSERT INTO dbname.x_test_account(`env`, `user_name`, `pw`, `enc`) VALUES ('{env}', '{user_name}', '{pw}', '{enc}');"
cursor.execute(insert_sql)
db.commit()
db.close()
cursor.close()
执行之后: