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

適合Python項目的五大SQL連接器

 更新時間:2021年09月13日 16:27:32   作者:陳峻  
這篇文章,將要介紹當前流行的、適合大多數(shù)Python程序員的、五大Python SQL數(shù)據(jù)庫連接器,并討論它們安裝和各種的優(yōu)缺點。需要的噴朋友可以參考下面文章的具體內容

【51CTO.com快譯】 作為一種驅動程序,數(shù)據(jù)庫連接器(database connector)的工作方式類似于,我們將軟件接口連接到特定的數(shù)據(jù)庫上,以實現(xiàn)適配器的基本功能。現(xiàn)如今,Python已經(jīng)成為了一種在全球范圍內,被廣為使用的編程語言。因此,我們有必要了解與Python有關的數(shù)據(jù)庫連接器。

通常,我們可以通過作為Python標準數(shù)據(jù)庫接口的Python DB-API,將MySQLdb模塊運用于MySQL之上。不過,由于該模塊獨立于任何其他數(shù)據(jù)庫引擎,因此我們需要額外地通過編寫Python腳本,來實現(xiàn)對于其他數(shù)據(jù)庫引擎的訪問。而且,該API與Python 3并不兼容,因此我們需要用到各種Python類型的數(shù)據(jù)庫連接器。接下來我們就來看一下適合大多數(shù)Python程序員的、五大Python SQL數(shù)據(jù)庫連接器,及它們安裝的各種優(yōu)缺點

1. PyMySQL(https://pypi.org/project/PyMySQL/)

如您所知,MySQL是業(yè)界領先的,多用戶、多線程的開源式數(shù)據(jù)庫管理系統(tǒng)。它在Web項目的開發(fā)中倍受歡迎。

安裝與使用:

我們可以通過運行如下命令,在自己的PC上安裝PyMySQL:

bash 
pip install pymysql 


完成安裝后,我們可以通過運行如下Python代碼,來測試數(shù)據(jù)庫連接器:

import pymysql 
con = pymysql.connect('localhost', 'username', 
    'password', 'db_name'') 
with con. cursor()  as cur: 
    cur.execute('SELECT VERSION()') 
    version = cur.fetchone() 
    print(f'Database version: {version[0]}') 
con.close() 


優(yōu)點:

  • 其大多數(shù)公共API都與mysqlclientMySQLdb相兼容。
  • 同時支持Python 23。
  • 能夠支持MySQL和MariaDB服務器。

缺點:

不支持由MySQL提供的低級API,其中包括:data_seek、store_result use_result等。

2. MySQLdb(https://mysqlclient.readthedocs.io/user_guide.html)

作為MySQL數(shù)據(jù)庫服務器上能夠兼容線程(thread-compatible)的接口,MySQLdb提供了針對Python數(shù)據(jù)庫的API。

安裝與使用:

您可以通過運行如下命令,在自己的PC上安裝MySQLdb模塊:

bash 
# For Ubuntu, use the following command - 
sudo apt-get install python-pip python-dev libmysqlclient-dev 
# For Fedora, use the following command - 
sudo dnf installPythonpython-devel mysql-devel redhat-rpm-config gcc 
#ForPythoncommand prompt, use the following command - 
pip install MySQL-python 


也可以通過運行如下Python代碼,來使用該連接器:

from MySQLdb import _mysql 
db=_mysql.connect() 
db=_mysql.connect(host="localhost",user="username", 
                  passwd="password",db="db_name") 


優(yōu)點:

  • 由于是用C語言構建的,因此其運行的速度非???。
  • 屬于純粹的SQL。
  • 能夠支持MySQL。

缺點:

  • 并不支持Python 3。
  • 需要自行編寫SQL代碼。
  • 不但需要自行管理指針,而且無法進行任何緩存、或參數(shù)化。
  • 如果不重寫所有的數(shù)據(jù)庫代碼,則無法切換到不同的數(shù)據(jù)庫后端。

3. QTSQL(https://doc.qt.io/qt-5/qtsql-index.html)

作為另一種數(shù)據(jù)庫連接器,QTSQL可被用于將數(shù)據(jù)庫與各種PYQT5應用程序相集成。值得注意的是,由于QT是一種GUI工具包,因此QTSQL主要被用于UI類應用程序。

安裝與使用:

由于QTSQL已經(jīng)預安裝了PYQT5,因此您可以通過如下Python代碼,導入對應的模塊。

from PyQt5 import QtSql 


并且通過如下代碼段,連接到數(shù)據(jù)庫上:

self.QSqlDatabase.addDatabase("QMYSQL") 
self.db.setHostName("host_name") 
self.db.setDatabaseName("database_name") 
self.db.setUserName("username") 
self.db.setPassword("password") 


在上述代碼中,QSqlDatabase.addDatabase的第一個參數(shù),可用于添加驅動程序,其中包括:QPSQL、QMYSQL、QOCI、QODBC、以及QSQLITE等。緊接著的四行命令:setHostName()、setDatabaseName()、setUserName()和setPassword(),可用于初始化數(shù)據(jù)庫連接。此外,在完成初始化后,您還可以通過調用QSqlDatabase.open(),以打開并訪問數(shù)據(jù)庫。

優(yōu)點:

  • 僅可以使用各種Qt庫。
  • 由于它能夠與Qt的各種標準小部件相集成,因此可以返回Qt對象。
  • 可以使用任何支持Qt的數(shù)據(jù)庫后端(如:MySQL、SQLite等)。

缺點:

  • 需要自行編寫SQL。

4. Psycopg2(https://pypi.org/project/psycopg2/)

Psycopg Python編程語言中最流行的PostgreSQL數(shù)據(jù)庫適配器。它的主要特點是完整地實現(xiàn)了PythonDB API 2.0的規(guī)范和線程的安全性(即,多個線程可以共享同一個連接)。由于它是為具有大量多線程的應用程序而設計的,因此此類應用不但會創(chuàng)建和銷毀大量的指針,而且會生成大量并發(fā)的INSERTUPDATE。

安裝和指南:

可以通過運行如下命令,在自己的PC上安裝psycopg2

bash 
 
pip install psycopg2 


完成安裝后,請運行如下Python代碼:

import psycopg2
try:
    conn = psycopg2.connect("dbname='template1' user='dbuser' host='localhost' password='dbpass'")
except:
    print "I am unable to connect to the database"
cur = conn.cursor()
cur.execute("""SELECT datname from pg_database""")

優(yōu)點:

  • 快速高效。
  • 支持多種連接、以及各種連接對象。
  • 支持各種異步查詢。

缺點:

  • 缺乏相應的文檔。

5. SuperSQLite(https://github.com/plasticityai/supersqlite)

作為一個針對Python的超級SQLite庫和驅動程序,SuperSQLite將原有內置的SQLite包,替換成了為每個平臺原生的、預編譯好(pre-compiled)的新版本SQLite,及其SQLite擴展。

安裝和指南:

可以通過運行如下命令,在自己的PC上安裝SuperSQLite:

bash  
pip install supersqlite 


完成安裝后,運行如下Python代碼即可使用:

from supersqlite import sqlite3  
conn = sqlite3.connect('databasefile.db')  


優(yōu)點:

  • 快速高效。
  • 可以通過HTTP協(xié)議實現(xiàn)遠程流式傳輸。
  • 可以實現(xiàn)全文檢索。

暫未發(fā)現(xiàn)顯著的缺點。

小結:
綜上所述,我們一同了解了何為數(shù)據(jù)庫連接器、為何要在Python中使用數(shù)據(jù)庫連接器,以及五種最常用的Python SQL數(shù)據(jù)庫連接器。此外,我們還討論了每種連接器的安裝步驟,及其各自的優(yōu)缺點。

到此這篇關于適合Python項目的五大SQL連接器的文章就介紹到這了,更多相關適合Python的五大SQL連接器內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 源碼解析python的內存回收機制

    源碼解析python的內存回收機制

    在CPython中,引用計數(shù)是用來管理內存的一種方法,當一個Python對象的引用計數(shù)變?yōu)榱銜r,表示沒有其他對象引用該對象,因此可以安全地將其內存回收,需要的朋友可以參考下
    2023-04-04
  • Python操作串口的方法

    Python操作串口的方法

    這篇文章主要介紹了Python操作串口的方法,以一個簡單實例分析了Python操作串口echo輸出的方法,需要的朋友可以參考下
    2015-06-06
  • python使用pandas進行量化回測

    python使用pandas進行量化回測

    這篇文章主要介紹了python使用pandas進行量化回測,文章圍繞pandas進行量化回測的相關資料展開簡單內容,文章內容可以做一些比較簡單的技術指標測試,需要的朋友可以參考一下
    2022-03-03
  • Python基于paramunittest模塊實現(xiàn)excl參數(shù)化

    Python基于paramunittest模塊實現(xiàn)excl參數(shù)化

    這篇文章主要介紹了Python基于paramunittest模塊實現(xiàn)excl參數(shù)化,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • PyQt5 顯示超清高分辨率圖片的方法

    PyQt5 顯示超清高分辨率圖片的方法

    這篇文章主要介紹了PyQt5 顯示超清高分辨率圖片的方法,幫助大家更好的理解和阿學習使用pyqt5,感興趣的朋友可以了解下
    2021-04-04
  • Python基于多線程實現(xiàn)抓取數(shù)據(jù)存入數(shù)據(jù)庫的方法

    Python基于多線程實現(xiàn)抓取數(shù)據(jù)存入數(shù)據(jù)庫的方法

    這篇文章主要介紹了Python基于多線程實現(xiàn)抓取數(shù)據(jù)存入數(shù)據(jù)庫的方法,結合實例形式分析了Python使用數(shù)據(jù)庫類與多線程類進行數(shù)據(jù)抓取與寫入數(shù)據(jù)庫操作的具體使用技巧,需要的朋友可以參考下
    2018-06-06
  • tensorflow使用指定gpu的方法

    tensorflow使用指定gpu的方法

    TensorFlow是一個基于數(shù)據(jù)流編程(dataflow programming)的符號數(shù)學系統(tǒng),被廣泛應用于各類機器學習,這篇文章主要介紹了tensorflow使用指定gpu的方法,需要的朋友可以參考下
    2020-02-02
  • 利用Python破解摩斯密碼

    利用Python破解摩斯密碼

    摩爾斯電碼( 又譯為摩斯密碼,英語:Morse code)是一種時通時斷的信號代碼,通過不同的排列順序來表達不同的英文字母、數(shù)字和標點符號。本文將通過Python代碼來實現(xiàn)破解摩斯密碼,感興趣的可以學習一下
    2022-02-02
  • Python OpenCV實現(xiàn)傳統(tǒng)圖片格式與base64轉換

    Python OpenCV實現(xiàn)傳統(tǒng)圖片格式與base64轉換

    Base64是網(wǎng)絡上最常見的用于傳輸8Bit字節(jié)碼的編碼方式之一,本文主要介紹了Python OpenCV實現(xiàn)傳統(tǒng)圖片格式與base64轉換,感興趣的可以參考一下
    2021-06-06
  • python中的格式化輸出用法總結

    python中的格式化輸出用法總結

    這篇文章主要介紹了python中的格式化輸出用法,分析了Python格式化輸出的種類并結合實例形式總結了針對浮點數(shù)的格式化輸出方法,需要的朋友可以參考下
    2016-07-07

最新評論