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

Python實現(xiàn)MySql數(shù)據(jù)庫交互的示例

 更新時間:2023年01月06日 11:24:27   作者:smart_cat  
本文主要介紹了Python實現(xiàn)MySql數(shù)據(jù)庫交互的示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

一、使用MySql進行持久化存儲

在任何應用中,都需要持久化存儲。一般有 3 種基礎的存儲機制:文件、數(shù)據(jù)庫系統(tǒng)以及一些混合類型。這種混合類型包括現(xiàn)有系統(tǒng)上的 API、 ORM、文件管理器、電子表格、配置文件等。

對于非常簡單的應用而言,使用文件作為持久化存儲通常就足夠了,但是當文件或創(chuàng)建的數(shù)據(jù)存儲系統(tǒng)不適用于大項目時,我們需要轉而使用數(shù)據(jù)庫,大多數(shù)復雜的數(shù)據(jù)驅動的應用是需要使用全功能的關系數(shù)據(jù)庫的。

一個關系數(shù)據(jù)庫管理系統(tǒng)( RDBMS)通??梢怨芾矶鄠€數(shù)據(jù)庫,比如銷售、市場、用戶支持等,都可以在同一個服務端(如果 RDBMS 基于服務器,可以這樣。不過一些簡單的系統(tǒng)通常不是基于服務器的)。在本章將要看到的例子中, MySQL 是一種基于服務的RDBMS,因為它有一個服務器進程始終運行以等待命令行輸入;而 SQLite 則不會運行服務器。

二、安裝MySql數(shù)據(jù)庫和Python庫PyMySQL

在開始之前,請確保:

  • 已經安裝了MySql數(shù)據(jù)庫并已經開啟了相關服務。
  • 正確安裝名為PyMySQL的Python庫。

MySql數(shù)據(jù)庫的安裝請參考另一片文章。此處不再贅述。

在python3中,如果想要將數(shù)據(jù)存儲到mysql中,就需要借助PyMySQL來操作,安裝的話,還是推薦使用pip來進行,簡單快捷。

相關鏈接:

GitHub : https://github.com/PyMySQL/

PyMySQL官方文梢 : http://pymysql.readthedocs.io/

PyPl: https://pypi.python.org/pypi/PyMySQL

pip install pymysql

20221203012102

驗證一下安裝是否成功:

20221203012611

如果能夠像上圖輸出版本信息,則表示PyMySQL已經成功安裝。

三、使用pymysql鏈接mysql數(shù)據(jù)庫

假設當前MySql服務器運行在本地,用戶名為root,密碼為123456,運行端口為3306。

嘗試連接到數(shù)據(jù)庫并創(chuàng)建一個新的數(shù)據(jù)庫,名字叫testdb

import pymysql

conn = pymysql.connect(host='localhost', user='root', password='123456', port=3306)
cur = conn.cursor()
cur.execute('select version()')
data = cur.fetchone()
print(f'database version: {data}')

cur.execute('CREATE DATABASE testdb DEFAULT CHARACTER SET utf8')
conn.close()

能夠正常輸出版本,說明python已經能夠成功連接到數(shù)據(jù)庫。

20221203021204

在數(shù)據(jù)庫中,也可以看到我們剛剛建立的新的數(shù)據(jù)庫。

20221203023435

四、創(chuàng)建表

一般來說,創(chuàng)建數(shù)據(jù)庫的操作只需要執(zhí)行一次就好了。當然,我們也可以手動創(chuàng)建數(shù)據(jù)庫 。

創(chuàng)建數(shù)據(jù)庫后,在連接時需要額外指定一個參數(shù) db 。

加下來,我們創(chuàng)建一個新的數(shù)據(jù)表students, 指定3個字段,如下所示:

20221203021800

import pymysql

conn = pymysql.connect(host='localhost', user='root', password='123456', port=3306, db='testdb')
cur = conn.cursor()
sql = '''
CREATE TABLE IF NOT EXISTS students (id VARCHAR(255) NOT NULL, name VARCHAR(255) NOT NULL, age INT NOT NULL, PRIMARY KEY (id))
'''
cur.execute(sql)
conn.close()

可以看到新的表已經創(chuàng)建成功了。

20221203023543

五、插入數(shù)據(jù)

這里僅演示一下數(shù)據(jù)的插入,其他的操作,比如刪除數(shù)據(jù)、更新數(shù)據(jù)等等,請參考官方文檔示例。

import pymysql

conn = pymysql.connect(host='localhost', user='root', password='123456', port=3306, db='testdb')
cur = conn.cursor()

sdudent = [
    ('001', '張三', 12),
    ('002', '李四', 13),
    ('003', '王五', 14)]

try:
    cur.executemany("INSERT INTO students(id, name, age) VALUES (%s, %s, %s)", sdudent)
    conn.commit()
except:
    conn.rollback()

conn.close()

查表,可以看到數(shù)據(jù)已經插入成功。

20221203030858

六、后記

注意,pymysql模塊中不能使用占位符 ? , 這點與SQLite不一樣。必須使用paramstyle = "pyformat"的風格。

比如

# 這么寫會報錯
cur.executemany("INSERT INTO students(id, name, age) VALUES (?, ?, ?)", sdudent)

發(fā)生異常: TypeError
not all arguments converted during string formatting
File “G:\Code\practice\testpython\mysql.py”, line 10, in
cur.executemany(“INSERT INTO students(id, name, age) VALUES (?, ?, ?)”, sdudent)

# 必須使用paramstyle = "pyformat"的風格
cur.executemany("INSERT INTO students(id, name, age) VALUES (%s, %s, %s)", sdudent)

詳情在另一篇文章(《Python數(shù)據(jù)庫編程之關系數(shù)據(jù)庫API規(guī)范 》)里有描述,大致原因如下:

在整個數(shù)據(jù)庫模塊實現(xiàn)中沒有關于占位符的標準規(guī)則。但是,每一個模塊都定義了一個變量paramstyle, 它描述了將在查詢中使用的值替換格式。這一變量可能的值如下:

20221130001542

在這里插入圖片描述

到此這篇關于Python實現(xiàn)MySql數(shù)據(jù)庫交互的示例的文章就介紹到這了,更多相關Python MySql數(shù)據(jù)庫交互內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python語法糖遍歷列表時刪除元素方法示例詳解

    Python語法糖遍歷列表時刪除元素方法示例詳解

    這篇文章主要為大家介紹了Python語法糖遍歷列表時刪除元素詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • python3中的eval和exec的區(qū)別與聯(lián)系

    python3中的eval和exec的區(qū)別與聯(lián)系

    這篇文章主要介紹了python3中的eval和exec的區(qū)別與聯(lián)系,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • Pytorch可視化之Visdom使用實例

    Pytorch可視化之Visdom使用實例

    Visdom 是一個專門用于 PyTorch 的交互式可視化工具,可以對實時數(shù)據(jù)進行豐富的可視化,幫助我們實時監(jiān)控在遠程服務器上進行的科學實驗,這篇文章主要給大家介紹了關于Pytorch可視化之Visdom使用的相關資料,需要的朋友可以參考下
    2021-08-08
  • Python向Excel中插入圖片的簡單實現(xiàn)方法

    Python向Excel中插入圖片的簡單實現(xiàn)方法

    這篇文章主要介紹了Python向Excel中插入圖片的簡單實現(xiàn)方法,結合實例形式分析了Python使用XlsxWriter模塊操作Excel單元格插入jpg格式圖片的相關操作技巧,非常簡單實用,需要的朋友可以參考下
    2018-04-04
  • Python提取視頻幀圖片實例代碼

    Python提取視頻幀圖片實例代碼

    大家好,本篇文章主要講的是Python提取視頻幀圖片實例代碼,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • 利用python代碼管理Word文檔屬性信息

    利用python代碼管理Word文檔屬性信息

    在Word文檔管理中,文檔屬性包含與文檔有關的關鍵信息,如標題、作者、創(chuàng)建日期等,是進行文檔管理的重要工具,本文將展示如何利用Python代碼來靈活操控Word文檔的屬性信息,從而滿足個性化與批量化文檔處理的需求,需要的朋友可以參考下
    2024-05-05
  • Python簡明入門教程

    Python簡明入門教程

    這篇文章主要介紹了Python簡明入門教程,較為詳細的分析了Python的基本概念及語法基礎,有助于Python初學者更好的掌握Python的基本語法與使用技巧,需要的朋友可以參考下
    2015-08-08
  • python?如何實現(xiàn)跳過異常繼續(xù)執(zhí)行

    python?如何實現(xiàn)跳過異常繼續(xù)執(zhí)行

    這篇文章主要介紹了python?如何實現(xiàn)跳過異常繼續(xù)執(zhí)行,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Python?IDLE設置清屏快捷鍵的方法詳解

    Python?IDLE設置清屏快捷鍵的方法詳解

    這篇文章主要為大家詳細介紹了Python?IDLE設置清屏快捷鍵的方法,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的可以了解一下
    2022-09-09
  • python數(shù)據(jù)分析:關鍵字提取方式

    python數(shù)據(jù)分析:關鍵字提取方式

    今天小編就為大家分享一篇python數(shù)據(jù)分析:關鍵字提取方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02

最新評論