首頁(yè)常見(jiàn)問(wèn)題正文

用Python來(lái)配置MySQL數(shù)據(jù)庫(kù)

更新時(shí)間:2023-02-14 來(lái)源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  在一些大型的項(xiàng)目演練中,通常項(xiàng)目會(huì)擬采用MySQL存儲(chǔ)商品數(shù)據(jù)、用戶賬戶數(shù)據(jù)和訂單等數(shù)據(jù)量較大、需持久化存儲(chǔ)的數(shù)據(jù),Django默認(rèn)使用的數(shù)據(jù)庫(kù)是sqlite3,下面分步驟介紹如何為Django項(xiàng)目配置MySQL數(shù)據(jù)庫(kù)。

  1.新建MySQL數(shù)據(jù)庫(kù)

  為項(xiàng)目配置MySQL數(shù)據(jù)庫(kù)之前需先創(chuàng)建小魚(yú)商城的數(shù)據(jù)庫(kù)和授權(quán)用戶,在本地主機(jī)新建MySQL數(shù)據(jù)庫(kù)xiaoyu(編碼方式為utf-8),創(chuàng)建MySQL用戶itheima(密碼為123456)并授權(quán)該用戶訪問(wèn)xiaoyu_mall。

  2.配置MySQL數(shù)據(jù)庫(kù)

  打開(kāi)配置文件dev.py,修改DATABASES的配置信息,修改后的代碼如下:

DATABASES = {
    'default': {
        # 'ENGINE':'django.db.backends.sqlite3',
        # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        'ENGINE': 'django.db.backends.mysql',     # 數(shù)據(jù)庫(kù)引擎
        'HOST': '127.0.0.1',                      # 數(shù)據(jù)庫(kù)主機(jī)
        'PORT':3306,                              # 數(shù)據(jù)庫(kù)端口
        'USER':'itheima',                         # 數(shù)據(jù)庫(kù)用戶名
        'PASSWORD':'123456',                      # 數(shù)據(jù)庫(kù)用戶密碼
        'NAME':'xiaoyu',                          # 數(shù)據(jù)庫(kù)名字
    }
}

  3.安裝PyMySQL擴(kuò)展包

  數(shù)據(jù)庫(kù)配置完成后可能出現(xiàn)以下錯(cuò)誤:

   Error loading MySQLdb module: No module named 'pymysql'.

  出現(xiàn)以上錯(cuò)誤是因?yàn)镈jango中操作MySQL數(shù)據(jù)庫(kù)需要啟動(dòng)程序PyMySQL,而且前虛擬環(huán)境中沒(méi)有驅(qū)動(dòng)程序PyMySQL。安裝PyMySQL可以解決以上錯(cuò)誤:

  (xiaoyu_mall) E:\xiaoyu_mall>pip install PYMYSQL

  但是后期創(chuàng)建應(yīng)用時(shí)又會(huì)出現(xiàn)以下異常:

  django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer
  is required; you have 0.9.3.

  這是因?yàn)槟壳癙ython3使用的MySQL數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序?yàn)閙ysqlclient。mysqlclient和PyMySQL實(shí)質(zhì)上是由同一作者研發(fā)的不同版本的MySQL數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序,PyMySQL相對(duì)陳舊,這里需要卸載PyMySQL,安裝mysqlclient以解決異常,具體操作如下:

  (xiaoyu_mall) E:\xiaoyu_mall\xiaoyu_mall\apps>pip unistall pymysql 
  (xiaoyu_mall) E:\xiaoyu_mall\xiaoyu_mall\apps>pip install mysqlclient


分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!