在Django框架中,需要根据app中的models.py文件中编写的类来自动创建表
class UserInfo(models.Model):
def __str__(self):
return self.name
# 创建字段
name = models.CharField(max_length=32, verbose_name='姓名')
password = models.CharField(max_length=64, verbose_name='密码')
age = models.IntegerField(verbose_name='年龄')
account = models.DecimalField(max_digits=20, decimal_places=2, default=0, verbose_name='账户余额')
create_time = models.DateField(verbose_name='入职时间')
# 级联删除
depart = models.ForeignKey(to='Department', to_field='id', on_delete=models.CASCADE, verbose_name='部门')
# 置空
# depart = models.ForeignKey(to='Department', to_field='id', null=True, blank=True, on_delete=models.SET_NULL)
gender_choices = (
(1, '男'),
(2, '女'),
)
gender = models.SmallIntegerField(choices=gender_choices, verbose_name='性别')
当然前提是要创建好数据库,Django不能自动创建数据库
create database dj1;
然后导入本机或云端数据库配置到全局settings.py文件中
以我本地mysql为例
DATABASES = {
"default": {
"ENGINE": "django.db.backends.mysql",
"NAME": "dj1",
"USER": "root",
"PASSWORD": "123456",
"HOST": "127.0.0.1",
"PORT": "3306",
}
}
此时理论上只要执行manage.py makemigrations 和 manage.py migrate就可以自动创建数据库中的表了
但是我是在别的机器上完成的项目,把核心文件上传到git,别的垃圾文件类似__pycache__,migrations中的数据库迁移记录,都给删除了,然后导入到本地,此时无法正常创建表文件
排查后,发现是因为migrations文件夹中的__init__.py也被我删除了,所以无法正常执行
在migrations文件夹中创建一个空文件__init__.py,即可正确执行了!