【Django学习笔记】4:在业务逻辑中使用MySQL数据库

安装MySQL驱动

MySQL驱动不是内置的,可以使用Anaconda安装:

conda install mysqlclient

这里写图片描述

注册自定的app

这一步和上一篇使用的SQLite数据库一样,就使用上一篇的。

配置要使用的数据库

在同名子目录下的settings.py中配置要使用的数据库相关信息:

# Database
# https://docs.djangoproject.com/en/2.0/ref/settings/#databases

DATABASES = {
    # 将数据库从默认的SQLite3改成MySQL
    'default': {
        # MySQL的数据库驱动
        'ENGINE': 'django.db.backends.mysql',
        # 使用MySQL数据库
        'NAME': 'testDJ',
        'USER': 'root',
        'PASSWORD': '3838438',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

编写模型层

这一步和上一篇使用的SQLite数据库一样,就使用上一篇的。

手动创建数据库

前面指明了MySQL数据库名,如果这个数据库不存在,Django无法自动创建,需要先手动创建这个数据库。

生成到数据库

全app生成

如果像之前那样执行:

python manage.py makemigrations
python manage.py migrate

将会在数据库中看到:
这里写图片描述
因为并没有指明要使用的是哪个app,但是可以看到同名子目录下的settings.py中已经注册了很多app,其中不乏Django默认自带的一些配置需要使用的app,这其中也有和数据库的交互。

指定app生成

删除掉这个数据库,再重新建立一个空的该数据库。

如果要生成指定app的数据库结构改动文件,和只对指定app的数据库结构来实际操作数据库,可以分别对前面两条语句指明要操作的app名字,例如:

E:\WorkSpace\PyCharm\lzhDjango>python manage.py makemigrations lzhapp
No changes detected in app 'lzhapp'

E:\WorkSpace\PyCharm\lzhDjango>python manage.py migrate lzhapp
Operations to perform:
  Apply all migrations: lzhapp
Running migrations:
  Applying lzhapp.0001_initial... OK

E:\WorkSpace\PyCharm\lzhDjango>

对数据库的结构操作的临时文件没有修改,是因为对这个app里面的数据库结构没有做过修改,写入文件时自然也不会改动。但只写入部分到数据库时,数据库内的结构是不同的:
这里写图片描述
除了自定的一个userinfo表之外,还是多了一张表:
这里写图片描述
这张表里记录的内容应该只是对数据库结构做了真实修改的日志。

扫描二维码关注公众号,回复: 1829897 查看本文章

猜你喜欢

转载自blog.csdn.net/shu15121856/article/details/80850573