python操作mysql數據庫


在我們做自動化測試工作中,肯定會用到查詢數據庫驗證數據庫的操作;

本篇主要寫的就是封裝好的針對數據庫的基本操作,如果工作中遇到造數據也可以直接調用;

代碼:

# project  :Python_Script
# -*- coding = UTF-8 -*-
# Autohr   :XingHeYang
# File     :operation_mysql_database.py
# time     :2019/11/5  10:24
# Describe :封裝對mysql數據庫的基本操作
# ---------------------------------------
import pymysql

class Operation_Mysql():

    def __init__(self,host,user,password,db,charset='utf8'):
        '''
        初始化連接mysql的操作
        :param host: 傳入mysql主機地址
        :param user: 傳入連接mysql用戶名
        :param password: 傳入連接密碼
        :param db: 指定數據庫名
        :param charset: 字符編碼格式  默認utf8編碼
        '''
        self.connect = pymysql.connect(    # 連接mysql
            host = host,
            user = user,
            password = password,
            db = db,
            charset = charset,
        )
    def __execute_sql(self,sql):
        '''
        該方法是一個私有方法,主要用於執行sql語句
        :param sql: 傳入要執行的sql語句
        :return: 如果是查詢語句,將會返回查詢的結果值。
        :return_type:返回tuple類型
        '''
        with self.connect.cursor() as cursor:  # 通過游標對象獲取容器
            cursor.execute(sql)                # 通過游標對象執行sql語句
            data = cursor.fetchall()           # 獲取執行sql后的返回數據,插入數據和創建表是沒有返回數據的,結果為空元組
        self.connect.commit()                  # 通過連接對象將對數據庫的操作進行提交
        return data                            # 返回查詢后的數據

    def insert_data(self,table,*args):
        '''
        封裝的插入數據的方法
        :param table: 傳入要插入數據的表名
        :param args: 傳入插入的數據值,傳入類型是元組
        '''
        sql = "insert into %s values %s" % (table, tuple(*args))
        self.__execute_sql(sql)                    # 調用私有方法,執行sql語句

    def create_table(self,tbale,table_type):
        '''
        封裝創建表的方法
        :param tbale: 傳入要創建的表名
        :param table_type: 傳入要創建表的字段 數據類型和表約束;傳入一個字符串的類型
        '''
        sql = "create table %s(%s)"%(tbale,table_type)
        self.__execute_sql(sql)                    # 調用私有方法,執行sql語句



    def select_data(self,sql):
        '''
        封裝的查詢語句的方法
        :param sql: 因查詢的方式太多,所以直接傳入sql語句進行查詢
        :return: 返回查詢后的結果數據
        '''
        data = self.__execute_sql(sql)
        return data

    def execute_sql(self,sql):
        '''
        公有的執行sql語句方法;主要用於修改數據和刪除數據
        :param sql: 傳入需要執行的sql語句
        '''
        self.__execute_sql(sql)

   
    def close_connect(self):
        '''
        主要用於關閉連接
        :return:
        '''
        self.connect.close()
 
         

 

if __name__ == '__main__':
    # 創建操作數據庫對象
    operation = Operation_Mysql('localhost','root','123456','hrdb')
    # 創建表
    type = 'name varchar(20),age int,sex char(10)'
    operation.create_table('userInfo',type)
    # 插入數據
    tuple1 = ['zhangsan', 18, 'man']
    operation.insert_data('userInfo',tuple1)
    # 查詢數據,並輸出
    sql = 'select * from userInfo'
    print(operation.select_data(sql))
    # 刪除數據
    sql = "delete from userInfo"
    operation.execute_sql(sql)
   operation.close_connect()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM