更新時間:2023-02-14 來源:黑馬程序員 瀏覽量:
在一些大型的項(xiàng)目演練中,通常項(xiàng)目會擬采用MySQL存儲商品數(shù)據(jù)、用戶賬戶數(shù)據(jù)和訂單等數(shù)據(jù)量較大、需持久化存儲的數(shù)據(jù),Django默認(rèn)使用的數(shù)據(jù)庫是sqlite3,下面分步驟介紹如何為Django項(xiàng)目配置MySQL數(shù)據(jù)庫。
1.新建MySQL數(shù)據(jù)庫
為項(xiàng)目配置MySQL數(shù)據(jù)庫之前需先創(chuàng)建小魚商城的數(shù)據(jù)庫和授權(quán)用戶,在本地主機(jī)新建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ù)庫主機(jī) 'PORT':3306, # 數(shù)據(jù)庫端口 'USER':'itheima', # 數(shù)據(jù)庫用戶名 'PASSWORD':'123456', # 數(shù)據(jù)庫用戶密碼 'NAME':'xiaoyu', # 數(shù)據(jù)庫名字 } }
3.安裝PyMySQL擴(kuò)展包
數(shù)據(jù)庫配置完成后可能出現(xiàn)以下錯誤:
Error loading MySQLdb module: No module named 'pymysql'.
出現(xiàn)以上錯誤是因?yàn)镈jango中操作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.
這是因?yàn)槟壳癙ython3使用的MySQL數(shù)據(jù)庫驅(qū)動程序?yàn)閙ysqlclient。mysqlclient和PyMySQL實(shí)質(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
數(shù)據(jù)挖掘和數(shù)據(jù)分析有什么區(qū)別?
2023-02-13Python中怎樣給字符串進(jìn)行大小寫轉(zhuǎn)換?
2023-02-10什么是元組?Scala怎樣獲取和定義元組中的值?
2023-02-10究竟應(yīng)該怎樣學(xué)習(xí)大數(shù)據(jù)?【內(nèi)含教程】
2023-02-02Hive中怎樣創(chuàng)建內(nèi)部數(shù)據(jù)表和外部數(shù)據(jù)表?
2023-02-01數(shù)據(jù)的價值是什么?為什么要做數(shù)據(jù)分析?
2023-02-01