Django 3.0 中連接mysql 8.0,可以不使用pymysql ,升級Mysqlclient即可


python 中,連接mysql一般都推薦用pymysql ,而且在django中,網上的教程都是這么連接mysql的.

import pymysql

pymysql.install_as_MySQLdb()

這實際是pymysql模塊調用了模塊中的一個函數 install_as_MySQLdb(),這個函數的注釋是這么說的.

After this function is called, any application that imports MySQLdb or
_mysql will unwittingly actually use pymysql.

大概意思是:

  調用此函數后,任何導入MySQLdb或_mysql的應用程序都會在不經意間實際使用pymysql。

最近在使用Django 3.0 中, 導入 Pymsql的時候報錯,提示Mysqlclient版本問題,.既然django 在我們選擇使用MYSQL的情景時,實際自動調用的是MySQLdb, Pymysql是可有可無的,我就直接pip install 了最新版的MySQLdb, 版本號是1.4.6, 在沒使用Pymysql, 也不用在settings中自己導入MySQLdb的情況下,順利連接我的MySQL .

我本地的安裝的是MySQL8.0 ,用來練習Django中的ORM操作,沒有發現問題. 我還沒測試過Mysql 5.6 5.7版本.估計也沒問題,(注:django不支持Mysql5.6以下的版本)

看來老方法有 OUT 了的可能性.

發布出來供大家參考, 如果有版本兼容性問題,還勞煩在本帖下留言,供大家分享.

補充:

django3.0官方文檔說,3.0需要mysqlclient 1.3.13或者更高版本的支持,並且mysqlclient是推薦的數據庫驅動程序.

除了mysqlclient, django還可以使用Connector/Python 作為mysql的數據庫驅動程序,這個驅動可以在dev.mysql.com下載. 這個驅動是Oracle提供的純python驅動, 不需要MySQL客戶端庫或標准庫之外的任何Python模塊作為支持.

不管mysqlclient還是Connector/Python都支持線程安全和連接池特性。


免責聲明!

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



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