使用python操作数据库

news2024/11/24 6:21:53

一、背景
当前由于多个脚本涉及到账户登陆,同时账号密码存在不断修改的情况,为避免多处修改,现计划将账户信息放到数据库中,后续所有账号信息均从数据库中去读取。
二、本文主要结构
创建测试账户
库表中插入记录
三、代码
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()

执行之后:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1185776.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【方法】如何取消PDF文件的“打开密码”?

我们知道,PDF文件可以设置“打开密码”,保护文件不被随意打开,那如果后续不需要了,要怎么取消“打开密码”呢?不清楚的小伙伴可以试试小编分享的3种方法! 方法1:使用PDF编辑器 PDF编辑器不仅可…

程序员远程兼职接单是骗局?索嘎~

“你还在线上接单?”“没被坑够?”“你不知道这些平台有多坑?”...... 相信无论是有无经验的兄弟都看到过这样的句子。那么事实果真如此吗?今天,带大家来了解一波。 常见的吐槽和问题是,一上来平台还没出力…

域名解析DNS:如何查询txt类型的解析记录

前言 略 查询txt类型的解析记录 使用 nslookup 命令查询。 示例: cmd> nslookup -qttxt _acme-challenge.mydomain.com 服务器: UnKnown Address: fe80::1非权威应答: _acme-challenge.mydomain.com text "_unitrust-dcv2311071423492fmnwb1w…

error: (-215:Assertion failed) !_src.empty() in function ‘cv::cvtColor‘

在给图片去除水印的时候,发现使用cv2打开图片的时候报错了,处理过程中没有找到图片对象,经过分析发现是图片的路径问题导致的,修改路径后未报错

网络安全(黑客)-零基础小白高效自学

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高; 二、则是发展相对成熟…

Yolov8部署——vs2019生成解决方案问题

Yolov8部署——vs2019生成解决方案问题 (1)Yolov8部署 最近开始在win10上部署Yolov8,并用tensorrt加速,从此贴开始记录后续遇到的部署问题。 (2)vs2019生成解决方案问题 报错如下图: NvInfer.h是Tenso…

【Unity】简单案例脚本实现 | 鼠标观察/键盘控制移动飞行/行走/碰撞检测

《Unity5实战-使用C#和Unity开发多平台游戏》第二章-构建一个让你置身3D空间的演示 鼠标观察/键盘控制移动飞行/行走/碰撞检测 Unity版本:2019.4.23f1c1 注意脚本名称和组件添加,不在文章中一一强调场景模型都是在资源商店选择的免费下载(选…

【管理工具】CMAK安装和使用(kafka-manager)

文章目录 前言一、安装和启动1.1 安装CMAK1.2 启动cmak 二、使用CMAK2.1 添加kafka集群2.2 topic 概述2.3 broker概述2.4 其他操作 前言 一、安装和启动 1.1 安装CMAK Java环境:需要jdk11 $ java -version java version "11.0.5" 2019-10-15 LTS Java…

NIO 笔记(一)基础内容

【笔记来自:it白马】 NIO基础 **注意:**推荐完成JavaSE篇、JavaWeb篇的学习再开启这一部分的学习,如果在这之前完成了JVM篇,那么看起来就会比较轻松了。 在JavaSE的学习中,我们了解了如何使用IO进行数据传输&#xf…

写论文中的心得记录

SCI论文从每一个细节开始 说明:本文章旨在记录写论文过程中常用的一些写作技巧和写作公式的编写等,意在提高写作效率。 1、如何给数学公式编号? 方法1:简单粗暴的方式 回车后的效果如下: 参考这篇文章&#xff1a…

安卓TextView调整下划线颜色、与文本底部的距离

需要自定义view来实现,因为安卓的TextView没有提供设置颜色与间距的方法 实现效果 下划线颜色与文字不一样下划线距离文字底部的边界可调整但只能标记同一行的文字,也就是说下划线的start与end在同一行。还没多行的需求,有时间再说 packa…

RuntimeError_ Found dtype Long but expected Float

在跑模型的时候,出现了报错: RuntimeError: Found dtype Long but expected Float报错是发生在BCE loss 的部分,因为crossentropyloss要求batch_label必须为torch.float类型 所以需要修改一下标签,转为float格式就好了&#xff1…

setpci设定PCIe寄存器

PCIe寄存器信息读取、分析、配置 1.获取bdf (bus:device.function)地址2.根据bdf地址抓取pci信息3.结合PCIe Spec对读到的信息进行分析使用setpci修改 1.获取bdf (bus:device.function)地址 在Linux系统下使用命令: l…

web3 React dapp项目通过事件从区块链中拿到 已取消 已完成 和所有的订单数据 并存入redux中

好 上文web3通过antd 在React dapp中构建订单组件基本结构我们算是把一个基本的订单组件展示做出来了 然后 我们继续 起一下环境先 ganache 终端运行 ganache -dMetaMask 登录一下 然后 打开项目 发布一下合约 truffle migrate --reset然后 运行一下 测试脚本 转入交易所 E…

云尘靶场 --JIS-CTF-VulnUpload

重新下vpn连接的文件 还是fscan扫 访问一下13 到了/login.php 随便弱口令试试 好吧没成功,那目录扫描一下 那就先看一下robots.txt了 flag有点快的 抱着试一试的态度看一下admin_area 没想到源代码里面居然有 这么这么多 本来还以为密码要去爆破的&#xff0…

webrtc推拉流 srs报错:DTLS_HANG DTLS: > Hang, done=0, version=-1, arq=0

执行了./objs/srs -c conf/rtc.conf 打开了srs的推拉流网页: 推流 拉流 srs报错如下: [2023-11-08 21:55:23.489][Warn][44992][8xvf4d62][104][DTLS_HANG] DTLS: Hang, done0, version-1, arq0 观看srs日志,在sdp offer,answer…

Qlik Sense : Fetching data with Qlik Web Connectors

目录 Connecting to data sources Opening a connector Connecting to a data source Authenticating the connector Defining table parameters Using standard mode or legacy mode Standard mode Connector overview Using multi-line input parameters to fetch da…

提前尝鲜!铁威马TOS 6内测招募中,赢取“遥遥领先”!

铁威马NAS的出现为我们解决了绝大部分的数据存储难题,而作为国民专业级NAS的铁威马,也从未停止前进的脚步,不断的升级和改造,致力于为用户打造一个更友好更安全的存储环境。 铁威马全新操作系统TOS 6来了!40多项新功能…

制药企业如何提高员工的GMP合规意识

在上期的文章中,我们介绍了>>制药企业计算机化系统验证(CSV)的重要性,本期我们深入探讨制药企业如何培养员工形成GMP良好的合规意识。 良好的药品质量是保障患者安全和有效治疗的基石。为了确保药品的质量、安全性和一致性,制药企业必…

美国财政部制裁俄罗斯洗钱人士打击网络犯罪

导语 美国财政部近日对一名37岁的俄罗斯女子实施了制裁,原因是她参与了为俄罗斯精英和网络犯罪团伙洗钱的行为。这一行动旨在打击网络犯罪活动,保护国际金融市场的安全。本文将详细介绍制裁对象以及网络犯罪的持续演变。 制裁俄罗斯洗钱人士 根据美国财政…