国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Django之模型層多表操作的實現

2020-02-16 00:31:15
字體:
來源:轉載
供稿:網友

一、創建模型

1,一對多關系

一本書只有一個出版社,一個出版社可以出版多本書,從而書與出版社之間就構成一對多關系,書是‘多'的一方,出版社是‘一'的一方,我們在建立模型的時候,把外鍵寫在‘多'的一方,即我們要把外鍵寫在book類。

class Book(models.Model): name=models.CharField(max_length=15) price=models.IntegerField() publish=models.ForeignKey('Publish',on_delete=models.CASCADE) #這就是外鍵,其實是有三個參數的,第二參數是指向的字段,此處可以省略,他會自動指向id字段class Publish(models.Model): name=models.CharField(max_length=15) addr=models.CharField(max_length=15) phone=models.IntegerField()

在創建模型時不用創建id字段,在makemigrations命令輸入之后,它會在migrations文件夾下生產一個py文件記錄models.py里面所有的改動,在記錄的時候就會自動給你加上自增長的主鍵字段id。

2,多對多關系

一本書可以有多個作者,一個作者可以寫多本書,從而書和作者就構成了多對多的關系,我們在創建模型的時候,把多對多關系寫在其中的任何一張表都可以。

class Book(models.Model): name=models.CharField(max_length=15) price=models.IntegerField() publish=models.CharField(max_length=15) author=models.ManyToManyField('Author',db_table='book_author')  這是創建關系表的代碼,由于是寫在book模型中的,所以第一個參數為另一張表Author,第二個參數為把關系表的名字改為‘book_author',如果不寫,名字會是應用名_本模型名的小寫_另一張模型名的小寫。如‘app_book_author' class Meta:  這是把表名改為‘book',如果不寫,表名為APP名_模型名,如'app_book'  db_table='book'class Author(models.Model): name=models.CharField(max_length=15) age=models.IntegerField() class Meta:  db_table='author'在創建第三張模型的時候也不用指定book的id和author的id,它會自動把兩個模型的id字段寫進去的

3,一對一關系

一個作者只能對應一個作者詳細信息表,他們之間就是一對一關系,這和多對多一樣的,關系寫在哪張表都是可以的

class Author(models.Model): name=models.CharField(max_length=15) age=models.IntegerField() author_info=models.OneToOneField('Author_Info',on_delete=models.CASCADE)  這是一對一關系創建,第二參數是,自動跟隨刪除,當作者不在了,隨即作者的信息也會刪除 class Meta:  db_table='author'  class Author_Info(models.Model): gf_name=models.CharField(max_length=10) telephone=models.IntegerField() ShenFenZheng=models.IntegerField()

4,在此處我們可以使用Django的database:db.sqlite3

步驟如下:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 周口市| 通化县| 玛沁县| 垫江县| 永和县| 绵竹市| 郑州市| 莱州市| 丰顺县| 长沙市| 临泽县| 昭平县| 凤翔县| 盐边县| 霞浦县| 阿克苏市| 印江| 宁陵县| 吴桥县| 务川| 柳河县| 濮阳市| 云龙县| 怀远县| 綦江县| 射洪县| 灵台县| 乐业县| 平乐县| 罗江县| 峡江县| 扎赉特旗| 北宁市| 吉林省| 双流县| 紫阳县| 武鸣县| 肃南| 峨眉山市| 刚察县| 永德县|