欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用Python封裝MySQLHelper類實(shí)現(xiàn)數(shù)據(jù)庫(kù)的增刪改查功能

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

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

在使用 pymysql 前需要先安裝該庫(kù),可使用 pip 命令進(jìn)行安裝:

pip install pymysql

首先,我們可以封裝一個(gè) MySQLHelper 類來管理數(shù)據(jù)庫(kù)連接和操作:

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):
        """查詢并返回單條數(shù)據(jù)"""
        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):
        """查詢并返回所有數(shù)據(jù)"""
        cursor = self.conn.cursor()
        cursor.execute(sql, params or ())
        result = cursor.fetchall()
        cursor.close()
        return result

    def insert(self, table, data: dict):
        """插入一條數(shù)據(jù)"""
        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):
        """更新數(shù)據(jù)"""
        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):
        """刪除數(shù)據(jù)"""
        sql = 'DELETE FROM %s WHERE %s' % (table, where)
        if where_params:
            self.execute(sql, where_params)
        else:
            self.execute(sql)

    def close(self):
        """關(guān)閉數(shù)據(jù)庫(kù)連接"""
        self.conn.close()

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

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

在使用 MySQLHelper 類時(shí),需要先實(shí)例化一個(gè)對(duì)象,并傳遞數(shù)據(jù)庫(kù)連接參數(shù)。以下是一個(gè)簡(jiǎn)單的示例:

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 的數(shù)據(jù)庫(kù),并操作名為 mytable 的表。具體實(shí)現(xiàn)了數(shù)據(jù)庫(kù)的增、刪、改、查等功能。執(zhí)行完畢后,還需調(diào)用 close 方法關(guān)閉數(shù)據(jù)庫(kù)連接。

總體而言,使用 Python 和 pymysql 庫(kù)連接和操作 MySQL 數(shù)據(jù)庫(kù)非常簡(jiǎn)單方便,可以輕松地完成各種數(shù)據(jù)庫(kù)操作任務(wù)。

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

相關(guān)文章

  • 什么是Python包的循環(huán)導(dǎo)入

    什么是Python包的循環(huán)導(dǎo)入

    在本篇文章里小編給大家整理的是關(guān)于什么是Python包的循環(huán)導(dǎo)入的相關(guān)知識(shí)點(diǎn),有興趣的朋友們可以參考下。
    2020-09-09
  • Python字符串中如何去除數(shù)字之間的逗號(hào)

    Python字符串中如何去除數(shù)字之間的逗號(hào)

    這篇文章主要介紹了Python字符串中如何去除數(shù)字之間的逗號(hào),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Python讀取二進(jìn)制文件代碼方法解析

    Python讀取二進(jìn)制文件代碼方法解析

    這篇文章主要介紹了Python讀取二進(jìn)制文件代碼方法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Python控制多進(jìn)程與多線程并發(fā)數(shù)總結(jié)

    Python控制多進(jìn)程與多線程并發(fā)數(shù)總結(jié)

    本篇文章主要介紹了Python控制多進(jìn)程與多線程并發(fā)數(shù),詳細(xì)講訴了進(jìn)程和線程的區(qū)別,并介紹了處理方法,有需要的朋友可以了解一下。
    2016-10-10
  • 利用Python繪制酷炫的3D地圖

    利用Python繪制酷炫的3D地圖

    pyecharts是一款將python與echarts結(jié)合的強(qiáng)大的數(shù)據(jù)可視化工具。本文將為大家介紹如何利用pyecharts繪制酷炫的3D地圖,感興趣的小伙伴可以試一試
    2022-03-03
  • 解決python DataFrame 打印結(jié)果不換行問題

    解決python DataFrame 打印結(jié)果不換行問題

    這篇文章主要介紹了解決python DataFrame 打印結(jié)果不換行問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Django中l(wèi)og日志記錄的最佳實(shí)踐

    Django中l(wèi)og日志記錄的最佳實(shí)踐

    Django中的log日志記錄是一個(gè)非常重要的功能,可以幫助開發(fā)者快速定位和解決問題。本文將介紹Django中l(wèi)og日志記錄的基本概念和使用方法,并提供一些最佳實(shí)踐,幫助開發(fā)者更好地利用log日志記錄功能。
    2023-04-04
  • python之如何實(shí)現(xiàn)延遲操作

    python之如何實(shí)現(xiàn)延遲操作

    這篇文章主要介紹了python之如何實(shí)現(xiàn)延遲操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 基于Python自制視覺桌上冰球小游戲

    基于Python自制視覺桌上冰球小游戲

    這篇文章主要和大家分享一下如何使用?mediapipe+opencv?制作桌上冰球的交互式小游戲,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-04-04
  • Python?Pyecharts繪制象形柱圖

    Python?Pyecharts繪制象形柱圖

    echarts是百度開源的一個(gè)數(shù)據(jù)可視化JS庫(kù),主要用于數(shù)據(jù)可視化。pyecharts是一個(gè)用于生成Echarts圖表的類庫(kù)。實(shí)際上就是Echarts與Python的對(duì)接。本文將利用pyecharts庫(kù)繪制象形柱狀圖,感興趣的可以了解一下
    2022-01-01

最新評(píng)論