Django配置連接Mysql數據庫(第四天)

配置Mysql數據庫

環境版本:ubunto+django2.2+python3.5+mysql5.7

1)安裝mysql

命令:apt-get install mysql-server
安裝之後通過命令:mysql --version查看版本
通過命令:mysql -u root -p進行登錄,默認密碼爲mysql
進入數據庫後,通過命令:show databases;查看已經存在的數據庫
通過命令:create database xm20200425 charset=utf8;創建新的數據庫

2)Django配置連接mysql

創建項目與應用後,打開項目中的settings.py配置好應用,並配置mysql連接如下:
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’, #數據庫驅動
‘NAME’: ‘xm20200425’, #剛剛新建的數據庫名稱
‘USER’: ‘root’, #數據庫用戶
‘PASSWORD’: ‘mysql’, #數據庫密碼
‘HOST’: ‘localhost’, #數據庫是否在本機
‘PORT’: 3306, #數據庫監聽端口號
}
}
在這裏插入圖片描述

3)啓動項目報錯

報錯信息一

django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install mysqlclient?
分析:由於python3缺少了MYSQLdb這個模塊導致。
處理方法:
安裝pymysql,命令:pip install pymysql
進入項目下的__init__.py,添加兩行代碼,將pymysql引入
import pymysql
pymysql.install_as_MySQLdb()
在這裏插入圖片描述

報錯信息二

django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.
在這裏插入圖片描述
分析:這是由於安裝模板pymysql版本爲0.9.3,比django2.2裏面默認限制的版本低導致的。
處理方法:
找到python的安裝路徑,找到django,找到對應數據庫裏面的base.py文件
例如:~/.virtualenvs/20200422/lib/python3.5/site-packages/django/db/backends/mysql/base.py
將35、36行代碼用#號註釋掉,保存內容。
35#if version < (1, 3, 13):
36# raise ImproperlyConfigured(‘mysqlclient 1.3.13 or newer is required; yo u have %s.’ % Database.version)

報錯信息三

AttributeError: ‘str’ object has no attribute ‘decode’
分析:這是django2.2版本的代碼限制。
處理方法:
找到python的安裝路徑,找到django,找到對應數據庫裏面的operations.py文件
例如:~/.virtualenvs/20200422/lib/python3.5/site-packages/django/db/backends/mysql/operations.py
將146行代碼中的
query = query.decode(errors=‘replace’)
修改爲:query = query.encode(errors=‘replace’),保存內容即可!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章