002---设计表结构
'''
关系:
图书---出版社
多对一:一个出版社对应多本书 外键字段放多的这一边
图书---作 者
多对多:一本书可以有多个作者 一个作者可以有多本书
'''
在app01的models.py建立表模型
1 class Publish(models.Model): 2 """ 3 出版社表 4 """ 5 name = models.CharField(max_length=16, verbose_name='出版社') 6 city = models.CharField(max_length=16, verbose_name='城市') 7 8 def __str__(self): 9 return self.name 10 11 12 class Author(models.Model): 13 """ 14 作者表 15 """ 16 name = models.CharField(max_length=16, verbose_name='作者') 17 age = models.CharField(max_length=16, verbose_name='年龄') 18 19 def __str__(self): 20 return self.name 21 22 23 class Book(models.Model): 24 """ 25 图书表 26 """ 27 title = models.CharField(max_length=32, verbose_name="名称") 28 pub_date = models.DateField(verbose_name='出版日期') 29 price = models.DecimalField(max_digits=8, decimal_places=2, verbose_name='价格') 30 31 publish = models.ForeignKey(to='Publish', verbose_name='出版社', on_delete=models.CASCADE) 32 author = models.ManyToManyField(to='Author', verbose_name='作者') 33 34 def __str__(self): 35 return self.title
此时还要告诉django要注册那个表。
项目目录下的settings.py注册app。
1 # Application definition 2 3 INSTALLED_APPS = [ 4 'django.contrib.admin', 5 'django.contrib.auth', 6 'django.contrib.contenttypes', 7 'django.contrib.sessions', 8 'django.contrib.messages', 9 'django.contrib.staticfiles', 10 'app01.apps.App01Config', #'app01'也行 11 ]
这里不使用mysql数据库,使用sqllite,所以也不需要修改配置文件。
接下来就可以生成迁移文件:
打开后执行下面两条命令:
打开生成的db.sqlite3文件。可以看到表已经生成了。