Django学习笔记〇六——项目2,图书管理系统
2022/1/9 6:05:38
本文主要是介绍Django学习笔记〇六——项目2,图书管理系统,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
我们前面做了个用户的管理系统,为了以后的学习,我们这次做一个稍微复杂的项目——图书管理系统。
说他复杂,但是功能上跟前面的第一个项目差不多,但是数据库里多了一些关联,数据库里有三个表:图书,出版社和作者。出版社和图书是一对多的关系,也就是说一个出版社可以出版很多书;书跟作者是多对多的关系:一本书可以有多个作者,当然一个作者可以写很多书。
ORM类的声明
出版社类
出版社类比较简单,就是一个主键外键一个name字段就可以了
class Publisher(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(null = False,max_length=16)
图书类
图书类就稍微复杂一些,通过外键把图书和出版社联系在一起
class Books(models.Model): id = models.AutoField(primary_key=True) title = models.CharField(null=False,max_length=32) publisher = models.ForeignKey(to='Publisher',on_delete=models.CASCADE)
关联外键的时候,参数on_delete是Django2.0版本以后必须显性定义的,否则会报错
作者类
作者类比较有意思,我们前面说了它跟书籍是多对多的关联,这里就要用到Django的ORM里ManyToManyField的方法
class Author(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(null=False,max_length=10,unique=True) book = models.ManyToManyField(to='Books')
我们在定义作者类的时候用到了多对多的外键关联,在索引数据的时候可以通过author查到book,但是要从book查author的时候就要用到反向查询了,具体的使用方法可以看一看前面的笔记——Django内外键的使用。
这篇关于Django学习笔记〇六——项目2,图书管理系统的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-20MongoDB教程:从入门到实践详解
- 2024-11-17执行 Google Ads API 查询后返回的是空数组什么原因?-icode9专业技术文章分享
- 2024-11-17google广告数据不同经理账户下的凭证可以获取对方的api数据吗?-icode9专业技术文章分享
- 2024-11-15SendGrid 的 Go 客户端库怎么实现同时向多个邮箱发送邮件?-icode9专业技术文章分享
- 2024-11-15SendGrid 的 Go 客户端库怎么设置header 和 标签tag 呢?-icode9专业技术文章分享
- 2024-11-12Cargo deny安装指路
- 2024-11-02MongoDB项目实战:从入门到初级应用
- 2024-11-01随时随地一键转录,Google Cloud 新模型 Chirp 2 让语音识别更上一层楼
- 2024-10-25Google Cloud动手实验详解:如何在Cloud Run上开发无服务器应用
- 2024-10-24AI ?先驱齐聚 BAAI 2024,发布大规模语言、多模态、具身、生物计算以及 FlagOpen 2.0 等 AI 模型创新成果。