class BookInfo(models.Model): # 每一个字段对应 表中的一列 title = models.CharField(max_length=30) # auto_now_add=True 意味着默认时间为 该行插入时间 pub_date = models.DateTimeField(auto_now_add=True)
class HeroInfo(models.Model): name = models.CharField(max_length=30) # bool 类型性别 默认值为true 代表男 gender = models.BooleanField(default=True) # null = True 代表该列可以为空 skill = models.CharField(max_length=50,null=True) # ForeignKey 表名和BookInfo为多对一关系 # book 的类型 BookInfo book = models.ForeignKey(BookInfo,on_delete=models.CASCADE)
在 manage.py 目录 Python manage.py makemigrations 该命令会在应用的migrations目录生成 带有编号的迁移文件
在 manage.py 目录 Python manage.py migrate
Django默认使用sqlite3 数据库 上述命令会在项目根目录生成sqlite3.db
**** 迁移文件 需要预先注册应用
Python manage.py shell
From booktest.models import BookInfo,HeroInfo
1、查询 得到所有 BookInfo.objects.all()
关联查询: 一找多: 一方对象. 多方类名小写_set.all() 多找一:通过多方模型类中存储的一方字段
2、插入 构造对象 b1 b1.save() 3、修改 对象.save() 会将对象中更改的字段保存到数据库 4、删除 对象.delete()
通过objects操作对象