Django连接mysql数据库
1、创建Django项目
Django连接mysql数据库需要手动创建数据库,Django会根据模型类自动生成数据表
2、创建应用
python manage.py startapp mysqltest
3、注册应用
4、配置数据库
配置Django02/setting.py下的DATABASE如下:
DATABASES = {
'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
'ENGINE': 'django.db.backends.mysql',
'NAME':'Django_test', # 数据库名,使用的数据库必须先手动创建
'USER':'root', # 连接mysql的用户名
'PASSWORD':'dry249512', #密码
'HOST':'localhost', #指定mysql数据库所在的电脑ip
'PORT':3306, # 数据库端口号
}
}
配置Django02/init.py如下:
前提需要安装pymysql,如果未安装可以使用如下命令安装。
pip install pymysql
import pymysql
pymysql.install_as_MySQLdb()
5、 定义模型类
- 模型类被定义在"应用/models.py"文件中,此例中为"mysqltest/models.py"文件。
- 模型类必须继承自Model类,位于包django.db.models中。
- 提示:对于重要数据使用逻辑删除。
1.打开mysqltest/models.py文件,定义模型类如下
from django.db import models
# Create your models here.
#定义图书模型类BookInfo
class BookInfo(models.Model):
# 图书名称
btitle = models.CharField(max_length=20)
# 出版日期
pub_date = models.DateField()
# 阅读量
reads = models.IntegerField(default=0)
# 评论量
bcomment = models.IntegerField(default=0)
# 逻辑删除
isDelete = models.BooleanField(default=False)
#定义英雄模型类HeroInfo
class HeroInfo(models.Model):
# 英雄名
hname = models.CharField(max_length=20)
# 性别
hsex = models.BooleanField(default=False)
# 备注
hcomment = models.CharField(max_length=200)
# 关系属性 外键
hbook = models.ForeignKey('BookInfo',on_delete=models.CASCADE)
# 逻辑删除
isDelete = models.BooleanField(default=False)
2.迁移
生成迁移文件。
python manage.py makemigrations
生成迁移文件的时候出现错误,把数据库切换成了mysql,需要安装pymysql模块之后,Django框架才可以操作mysql数据库。安装命令如下:
pip install pymysql
然后执行如下命令生成表。
python manage.py migrate
执行完上述命令之后就可以看到生成的数据表。