Django连接数据库
Django的setting文件中,找到数据库连接,修改成mysql:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'djangostudy',
'USER': 'root',
'PASSWORD': 'yeqinfang',
'HOST': '192.168.31.101',
'PORT': '3306',
}
}
执行迁移
python manage.py makemigrations
python manage.py migrate
pycharm直接报错,说明我们没有安装mysql的操作模块,安装如下:
然后引入mysql模块:
再次运行,报错:
他要求客户端版本较高,查看官方文档:https://pypi.org/project/mysqlclient/
并按照文档操作:
pip install mysqlclient
发现还是一样报错,需要更换客户端,并再次执行:
如上,执行成功。原因是django3.0不支持pymysql,而MySQLDB又不支持python3,所以官方推荐安装mysqlclient(MySQLdb分支)来引用MySQLdb,而不是直接安装MySQLdb,使用方法应该跟MySQLdb一样。
pycharm连接数据库
安装驱动文件之后(下方的感叹号,点击一下download),报如下错误:
Server returns invalid timezone. Need to set ‘serverTimezone’ property.
很显然,它提示时区不对,那我就去设置一下服务器时区。
(1)查看时区指令:
show variables like'%time_zone';
如图,system就是没设置时区。
(2)设置时区
set global time_zone = '+8:00';
(3)重新连接
操作数据库
创建应用:
那么,我们现在开始码代码吧!
(1)创建一张表
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)执行迁移
python manage.py makemigrations
python manage.py migrate
直接报错,原因是应用没有注册。
(3)注册应用
(4)再次执行迁移
再次执行成功了,但是没有表生成。为了查明什么原因,我决定去数据库查看:
有表生成!说明迁移成功,数据库生成了表,只是没显示在pycharm里。这是为什么呢?
(5)真相了!
pycharm连接数据库后不能查看表,此时,需要手动选择数据库
效果展示: