最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用Python封裝MySQLHelper類實現數據庫的增刪改查功能

 更新時間:2023年06月16日 15:31:10   作者:小小鳥愛吃辣條  
Python 連接 MySQL 的方法有很多,常用的有 pymysql 和 mysql-connector-python 兩種庫,本文主要介紹了如何封裝一個MySQLHelper類,實現對數據庫的增刪改查功能,感興趣的可以了解一下

Python 連接 MySQL 的方法有很多,常用的有 pymysql 和 mysql-connector-python 兩種庫。本文介紹使用 pymysql 庫連接 MySQL,并實現基本的增刪改查操作。

在使用 pymysql 前需要先安裝該庫,可使用 pip 命令進行安裝:

pip install pymysql

首先,我們可以封裝一個 MySQLHelper 類來管理數據庫連接和操作:

import pymysql


class MySQLHelper:
    def __init__(self, host, port, user, password, database):
        self.host = host
        self.port = port
        self.user = user
        self.password = password
        self.database = database
        self.conn = pymysql.connect(host=host, port=port, user=user, password=password, database=database)

    def execute(self, sql: str, params: tuple = None):
        """執(zhí)行 SQL 語句,無返回值"""
        cursor = self.conn.cursor()
        cursor.execute(sql, params or ())
        self.conn.commit()
        cursor.close()

    def query_one(self, sql: str, params: tuple = None):
        """查詢并返回單條數據"""
        cursor = self.conn.cursor()
        cursor.execute(sql, params or ())
        result = cursor.fetchone()
        cursor.close()
        return result

    def query_all(self, sql: str, params: tuple = None):
        """查詢并返回所有數據"""
        cursor = self.conn.cursor()
        cursor.execute(sql, params or ())
        result = cursor.fetchall()
        cursor.close()
        return result

    def insert(self, table, data: dict):
        """插入一條數據"""
        fields = ','.join(data.keys())
        values = ','.join(['%s'] * len(data))
        sql = 'INSERT INTO %s (%s) VALUES (%s)' % (table, fields, values)
        self.execute(sql, tuple(data.values()))

    def update(self, table, data: dict, where: str = '1=2', where_params: tuple = None):
        """更新數據"""
        set_values = ','.join(['%s=%s' % (field, '%s') for field in data.keys()])
        sql = 'UPDATE %s SET %s WHERE %s' % (table, set_values, where)
        params = tuple(data.values())
        if where_params:
            params += where_params
        self.execute(sql, params)

    def delete(self, table, where: str = '1=2', where_params: tuple = None):
        """刪除數據"""
        sql = 'DELETE FROM %s WHERE %s' % (table, where)
        if where_params:
            self.execute(sql, where_params)
        else:
            self.execute(sql)

    def close(self):
        """關閉數據庫連接"""
        self.conn.close()

以上 MySQLHelper 類封裝了基本的增刪改查操作,說明如下:

  • execute 方法用于執(zhí)行 SQL 語句,無返回值;
  • query_one 方法用于查詢并返回單條數據;
  • query_all 方法用于查詢并返回所有數據;
  • insert 方法用于插入一條數據;
  • update 方法用于更新數據;
  • delete 方法用于刪除數據;
  • close 方法用于關閉數據庫連接。

在使用 MySQLHelper 類時,需要先實例化一個對象,并傳遞數據庫連接參數。以下是一個簡單的示例:

if __name__ == '__main__':
    helper = MySQLHelper('localhost', 3306, 'root', 'your_password', 'mydatabase')
    helper.insert('mytable', {'column1': 'value1', 'column2': 'value2'})
    helper.update('mytable', {'column1': 'new_value'}, 'id=%s', (1,))
    helper.delete('mytable', 'id=%s', (1,))
    result = helper.query_one('SELECT column1 FROM mytable WHERE id=%s', (1,))
    helper.close()

以上示例代碼使用 MySQLHelper 連接到名為 mydatabase 的數據庫,并操作名為 mytable 的表。具體實現了數據庫的增、刪、改、查等功能。執(zhí)行完畢后,還需調用 close 方法關閉數據庫連接。

總體而言,使用 Python 和 pymysql 庫連接和操作 MySQL 數據庫非常簡單方便,可以輕松地完成各種數據庫操作任務。

到此這篇關于利用Python封裝MySQLHelper類實現數據庫的增刪改查功能的文章就介紹到這了,更多相關Python數據庫增刪改查內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python利用memory_profiler實現內存分析

    Python利用memory_profiler實現內存分析

    memory_profiler是第三方模塊,用于監(jiān)視進程的內存消耗以及python程序內存消耗的逐行分析。本文將利用memory_profiler實現內存分析,需要的可以參考一下
    2022-10-10
  • Python利用appium實現模擬手機滑動操控的操作

    Python利用appium實現模擬手機滑動操控的操作

    Appium 是一個開源、跨平臺的自動化測試工具,用于測試原生和輕量移動應用,支持 iOS, Android 和 FirefoxOS 平臺。本文將利用appium實現模擬手機滑動操控的操作,感興趣的可以了解一下
    2022-07-07
  • 詳解如何使用Python編寫vim插件

    詳解如何使用Python編寫vim插件

    本篇文章主要介紹了詳解如何使用Python編寫vim插件,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • 簡單了解python反射機制的一些知識

    簡單了解python反射機制的一些知識

    這篇文章主要介紹了簡單了解python反射機制的一些知識,反射機制就是在運行時,動態(tài)的確定對象的類型,并可以通過字符串調用對象屬性、方法、導入模塊,是一種基于字符串的事件驅動。,需要的朋友可以參考下
    2019-07-07
  • Django基礎之Model操作步驟(介紹)

    Django基礎之Model操作步驟(介紹)

    下面小編就為大家?guī)硪黄狣jango基礎之Model操作步驟(介紹)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • python文件操作的基礎詳細講解(write、read、readlines、readline)

    python文件操作的基礎詳細講解(write、read、readlines、readline)

    使用python來讀寫文件是非常簡單的操作,下面這篇文章主要給大家介紹了關于python文件操作的基礎詳細資料,包括write、read、readlines、readline等相關操作,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • PyQt 異步任務多線程的幾種方案示例詳解

    PyQt 異步任務多線程的幾種方案示例詳解

    文章總結了多線程異步編程的不同方式,包括QThread、QThreadPool和concurrent.futures,分別適用于不同場景,本文結合實例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧
    2025-01-01
  • 解決python使用pd.read_csv()出現錯誤UnicodeDecodeError:?'utf-8'?codec?can't?decode......

    解決python使用pd.read_csv()出現錯誤UnicodeDecodeError:?'utf-8&

    你是否有過之前用pd.read打開csv文件都正常,但突然有一天運行以前的代碼就突然報錯,這篇文章主要給大家介紹了關于如何解決python使用pd.read_csv()出現錯誤UnicodeDecodeError:?'utf-8'?codec?can't?decode......的相關資料,需要的朋友可以參考下
    2023-12-12
  • WIndows10系統下面安裝Anaconda、Pycharm及Pytorch環(huán)境全過程(NVIDIA?GPU版本)

    WIndows10系統下面安裝Anaconda、Pycharm及Pytorch環(huán)境全過程(NVIDIA?GPU版本)

    這篇文章主要給大家介紹了關于WIndows10系統下面安裝Anaconda、Pycharm及Pytorch環(huán)境(NVIDIA?GPU版本)的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • Python3獲取電腦IP、主機名、Mac地址的方法示例

    Python3獲取電腦IP、主機名、Mac地址的方法示例

    這篇文章主要介紹了Python3獲取電腦IP、主機名、Mac地址的方法,結合具體實例形式分析了Python3基于socket與uuid模塊針對電腦的IP、主機名、Mac地址等信息的讀取操作相關實現技巧,需要的朋友可以參考下
    2019-04-04

最新評論

都昌县| 兰坪| 靖江市| 桓仁| 德清县| 孟津县| 玉林市| 老河口市| 华容县| 襄城县| 翼城县| 合川市| 内江市| 临潭县| 舒城县| 叙永县| 炉霍县| 板桥市| 家居| 芮城县| 宝山区| 长子县| 东丽区| 金川县| 清新县| 原平市| 大同市| 扶风县| 仙游县| 司法| 喀喇| 梁山县| 安徽省| 同心县| 桂林市| 镇康县| 香港| 谢通门县| 汪清县| 秭归县| 峡江县|