• 使用python操作数据库


    一、背景
    当前由于多个脚本涉及到账户登陆,同时账号密码存在不断修改的情况,为避免多处修改,现计划将账户信息放到数据库中,后续所有账号信息均从数据库中去读取。
    二、本文主要结构
    创建测试账户
    库表中插入记录
    三、代码
    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()
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    执行完毕之后,检查表格创建完毕:
    在这里插入图片描述
    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()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    执行之后:

    在这里插入图片描述

  • 相关阅读:
    咖啡馆如何经营老顾客?
    基于PHP+MySQL企业网站的设计与开发
    Windows10系统下安装GPU版Pytorch和MMDetection
    prompt问题【中间不好】
    SQALE 是什么
    在KubeSphere中部署微服务(阡陌)+ DevOps
    STM32串口重定向/实现不定长数据接收
    rabbitmq载在.net中批量消费的问题记录
    易语言软件定制开发爬虫模拟协议填写自动化办公软件开发多人团队
    技术分析需谨慎,各位投资者应该这样做
  • 原文地址:https://blog.csdn.net/qq_44801116/article/details/134298588