Django連接數(shù)據(jù)庫
Django的setting文件中,找到數(shù)據(jù)庫連接,修改成mysql:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'djangostudy',
'USER': 'root',
'PASSWORD': 'yeqinfang',
'HOST': '192.168.31.101',
'PORT': '3306',
}
}
執(zhí)行遷移
python manage.py makemigrations
python manage.py migrate
pycharm直接報錯,說明我們沒有安裝mysql的操作模塊,安裝如下:
然后引入mysql模塊:
再次運行,報錯:
他要求客戶端版本較高,查看官方文檔:https://pypi.org/project/mysqlclient/
并按照文檔操作:
pip install mysqlclient
發(fā)現(xiàn)還是一樣報錯,需要更換客戶端,并再次執(zhí)行:
如上,執(zhí)行成功。原因是django3.0不支持pymysql,而MySQLDB又不支持python3,所以官方推薦安裝mysqlclient(MySQLdb分支)來引用MySQLdb,而不是直接安裝MySQLdb,使用方法應該跟MySQLdb一樣。
pycharm連接數(shù)據(jù)庫
安裝驅(qū)動文件之后(下方的感嘆號,點擊一下download),報如下錯誤:
Server returns invalid timezone. Need to set ‘serverTimezone’ property.
很顯然,它提示時區(qū)不對,那我就去設(shè)置一下服務器時區(qū)。
(1)查看時區(qū)指令:
show variables like'%time_zone';
如圖,system就是沒設(shè)置時區(qū)。
(2)設(shè)置時區(qū)
set global time_zone = '+8:00';
(3)重新連接
操作數(shù)據(jù)庫
創(chuàng)建應用:
那么,我們現(xiàn)在開始碼代碼吧!
(1)創(chuàng)建一張表
class loginUser(models.Model):
loginname = models.CharField(max_length=20, null=False, unique=True)
nickname = models.CharField(max_length=20, null=False, unique=False)
sex = models.BooleanField(default=True)
(2)執(zhí)行遷移
python manage.py makemigrations
python manage.py migrate
直接報錯,原因是應用沒有注冊。
(3)注冊應用
(4)再次執(zhí)行遷移
再次執(zhí)行成功了,但是沒有表生成。為了查明什么原因,我決定去數(shù)據(jù)庫查看:
有表生成!說明遷移成功,數(shù)據(jù)庫生成了表,只是沒顯示在pycharm里。這是為什么呢?
(5)真相了!
pycharm連接數(shù)據(jù)庫后不能查看表,此時,需要手動選擇數(shù)據(jù)庫
效果展示: