Django连接数据库MySQL
2019-08-12 本文已影响0人
_str_
Django连接MySQL数据库
所需环境 python3.4以上 +Diango 2.0 +MySQL5.7
Django项目默认使用mysqldb模块进行和mysql数据库之间的交互操作,但是mysqldb模块对于python3.4以上的版本支持还不够完善,所以我们要使用替代方案
通过pymysql模块完成和数据库之间的交互过程
Django连接mysql数据库的操作,是通过 根模块 的配置实现的,在项目根模块的配置文件settings.py中,我们可以查询到如下默认配置:
database.png
DATABASES配置:用于进行数据库连接信息的配置
ENGINE:用于特定的数据库引擎的配置,一般选项如下
django.db.backends.sqlite3
django.db.backends.postgresql
django.db.backends.mysql
django.db.backends.oracle
NAME:要连接的数据库名称的配置
USER:配置连接数据库的用户账号
PASSWORD:配置连接数据库的登录密码
HOST:配置数据库所在的主机IP地址
PORT:配置连接数据库的端口号
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'qamaster',
'USER': 'root',
'PASSWORD': '123456',
'HOST': '127.0.0.1',
'PORT': '3306',
}
'mysql2': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mysql2',
'USER': 'root',
'PASSWORD': '123456',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
类型对应关系
image.png特殊选项指定
image.png
多表操作
image.png
示例 简单创建用户类型和文件类型
image.png数据库同步操作
创建好我们需要的模型类之后,需要将创建好的类型添加到数据库中并同时建立关联关系
根据模型类自动生成对应数据库引擎的sql语句
在settings.py中,连接数据库信息中配置了数据库引擎,其实就是已经告诉Django我们使用的是哪个数据库了,Django会根据指定的数据库自动生成sql语句
在这之前需要在MySQL中建立一个空数据库 库名和setting
设置连接数据库的时候库名一样 不让识别不到无法映射进去数据
需要用到两条命令
迁移命令
python manage.py makemigrations
建立的空库 没有一张表
image.png迁移成功
image.png映射命令
manage.py migrate
映射成功
image.png数据库中已经有表
image.png项目中有了一个0001_initial.py
image.png运行项目
manage.py runserver
image.png
django拥有自己的后台管理平台
但是需要创建一个超级用户才能进入
image.png
创建超级用户的命令
python manage.py createsuperuser
登录进入
image.png