• Python-操作数据库之pymysql


    import pymysql
    import yaml
    
    '''
    mysql.connector基本应用
    数据库:存储项目数据
    验证数据  -->代码取数据库数据与实际结果进行比对
    步骤:
        1、连接数据库
        2、创建游标实例
        3、调用游标实例的excute(sql)  excute(sql,sql_value,bool)sql语句
        
        sql语句  -->读取yaml数据
        执行语句  --> excute
        
    注意: 防止SQL注入,where/delete/update/insert等涉及到查询的值都使用占位符%s,mysql.connector/pymysql模块会自动转义    
    '''
    class MySQL:
        def __init__(self,name):
            self.db = pymysql.connect(
                host="localhost",
                database=name,
                user="root",
                password="admin123"
            )
            # 获取游标实例
            self.cursor = self.db.cursor()
            print(self.cursor)
    
        def excute_sql_val(self,sql,sql_val=None):
            self.cursor.execute(sql,sql_val)
            for data in self.cursor:
                return data
    
        def update_sql_val(self,sql,sql_val=None):
            self.cursor.execute(sql,sql_val)
            self.db.commit()
            print(self.cursor.rowcount, "db have changed")
    
        #需要一次性插入多行数据
        def excute_many(self,sql,sql_val):
            self.cursor.executemany(sql,sql_val)
            self.db.commit()
            print(self.cursor.rowcount, "many sqls have excuted")
    
        #获取所有行
        def fetchall(self,sql,sql_val=None):
            self.cursor.execute(sql,sql_val)
            res = self.cursor.fetchall()
            for data in res:
                return data
    
        #只返回结果的第一行
        def fetchone(self,sql,sql_val=None):
            self.cursor.execute(sql,sql_val)
            res = self.cursor.fetchone()
            return res
    
    
    
    
    mysql = MySQL(name="mydatabase")
    with open(file="sql_data.yaml",mode="r",encoding="UTF-8") as file:
        data = yaml.load(stream=file,Loader=yaml.FullLoader)
    print(type(data))
    print(data)
    for k,v in data.items():
        mysql.excute_sql_val(sql=v)
    三十六般武艺,七十二般变化,修练出个人品牌并发出光芒
  • 相关阅读:
    SystemTap----常用变量、宏、函数和技巧
    RPM制作
    percona-MYSQLGUI监控
    Rsyslog配置文件详解
    理解 Linux 网络栈(1):Linux 网络协议栈简单总结 图
    tcp-backlog配置
    Clumsy logo差网络环境模拟工具 Clumsy
    Android Studio 配置模拟器AVD存放路径(默认在c盘,解决c盘空间不够问题)
    Android Studio 导入的项目编码错误问题
    21分钟 MySQL 入门教程
  • 原文地址:https://www.cnblogs.com/deeptester-vv/p/15136573.html
Copyright © 2020-2023  润新知