此章节对Django连接mysql以及创建数据库进行了总结
一、在Datagrip新建项目架构
架构名即为setting文件中的数据库名
二、编写表结构
在所需的app目录下的models文件下创建表类(以下与员工管理系统的示例表结构)
from django.db import models
# Create your models here.
class Department(models.Model):
"""部门表"""
title = models.CharField(verbose_name="标题", # 该参数相当于注解
max_length=32)
class UserInfo(models.Model):
"""员工表"""
name = models.CharField(verbose_name="姓名", max_length=16)
password = models.CharField(verbose_name="密码", max_length=64)
age = models.IntegerField(verbose_name="年龄")
account = models.DecimalField(verbose_name="账户余额", max_digits=10, # 总数字长度
decimal_places=2, # 小数位长度
default=0) # 默认值
create_time = models.DateTimeField(verbose_name="入职时间",
auto_now_add=True) # 自动添加当前时间
# 在django中做的约束
gender_choices=(
(1,"男"),
(2,"女"),
)
gender=models.SmallIntegerField(verbose_name="性别", choices=gender_choices)
# 无约束写法
# depart_id = models.BigIntegerField(verbose_name="部门ID")
# 1.有约束写法(通过数据库约束)
# -to 表示与哪张表关联
# -to_field 表示与哪张表的哪个字段关联
# 2.且该写法是django的特定写法,固定会在字段后拼接"_id"字段,
# 也就是以下的depart,生成到数据库中就变为depart_id
# 3 若部门表被删除
# ###3.1 级联删除
depart = models.ForeignKey(to="Department", to_field="id", on_delete=models.CASCADE)
# ###3.2 置为null
# depart = models.ForeignKey(to="Department", to_field="id", null=True, blank=True, on_delete=models.SET_NULL)
其中创建了两个表,分别是部门表Department,以及员工表UserInfo;
UserInfo表通过depart_id作为外键与Department表相连
三、创建表
(法1)通过命令行
在项目终端输入
python manage.py makemigrations
python manage.py migrate
(法2)通过pycharm工具
打开工具栏的运行manage.py任务
再输入
makemigrations
migrate
通过以上两个方法创建表后,我们就可以在Datagrip看到我们创建的表了