Django操作mysql数据库(一)

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连接数据库后不能查看表,此时,需要手动选择数据库
在这里插入图片描述效果展示:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43431593/article/details/106872257