更新時間:2023-02-14 來源:黑馬程序員 瀏覽量:
在一些大型的項目演練中,通常項目會擬采用MySQL存儲商品數(shù)據(jù)、用戶賬戶數(shù)據(jù)和訂單等數(shù)據(jù)量較大、需持久化存儲的數(shù)據(jù),Django默認使用的數(shù)據(jù)庫是sqlite3,下面分步驟介紹如何為Django項目配置MySQL數(shù)據(jù)庫。
1.新建MySQL數(shù)據(jù)庫
為項目配置MySQL數(shù)據(jù)庫之前需先創(chuàng)建小魚商城的數(shù)據(jù)庫和授權(quán)用戶,在本地主機新建MySQL數(shù)據(jù)庫xiaoyu(編碼方式為utf-8),創(chuàng)建MySQL用戶itheima(密碼為123456)并授權(quán)該用戶訪問xiaoyu_mall。
2.配置MySQL數(shù)據(jù)庫
打開配置文件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ù)庫引擎 'HOST': '127.0.0.1', # 數(shù)據(jù)庫主機 'PORT':3306, # 數(shù)據(jù)庫端口 'USER':'itheima', # 數(shù)據(jù)庫用戶名 'PASSWORD':'123456', # 數(shù)據(jù)庫用戶密碼 'NAME':'xiaoyu', # 數(shù)據(jù)庫名字 } }
3.安裝PyMySQL擴展包
數(shù)據(jù)庫配置完成后可能出現(xiàn)以下錯誤:
Error loading MySQLdb module: No module named 'pymysql'.
出現(xiàn)以上錯誤是因為Django中操作MySQL數(shù)據(jù)庫需要啟動程序PyMySQL,而且前虛擬環(huán)境中沒有驅(qū)動程序PyMySQL。安裝PyMySQL可以解決以上錯誤:
(xiaoyu_mall) E:\xiaoyu_mall>pip install PYMYSQL
但是后期創(chuàng)建應(yīng)用時又會出現(xiàn)以下異常:
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.
這是因為目前Python3使用的MySQL數(shù)據(jù)庫驅(qū)動程序為mysqlclient。mysqlclient和PyMySQL實質(zhì)上是由同一作者研發(fā)的不同版本的MySQL數(shù)據(jù)庫驅(qū)動程序,PyMySQL相對陳舊,這里需要卸載PyMySQL,安裝mysqlclient以解決異常,具體操作如下:
(xiaoyu_mall) E:\xiaoyu_mall\xiaoyu_mall\apps>pip unistall pymysql (xiaoyu_mall) E:\xiaoyu_mall\xiaoyu_mall\apps>pip install mysqlclient