Django09:图书管理系统笔记/choices用法/ MTV与MVC模型/多对多三种创建方式
?
圖書管理系統(tǒng)筆記
redirect括號(hào)內(nèi)可以直接寫url
也可以直接寫別名
但如果別名需要參數(shù),必須使用reverse解析。
?
choices用法
使用場(chǎng)景:能列舉完全的數(shù)據(jù)
#使用方法:xxx_choice
#1. get.xxx_display
#2. 如果超出范圍,則顯示原來的數(shù)據(jù),如3,4
#3. 字段類型保證和列舉類型一致
?
MTV與MVC模型
#MTV: django號(hào)稱是MVC模型
M: models
T: templates
V: views
#MVC: 其實(shí)django本質(zhì)也是MVC
M: models
V: views
C: controller
?
多對(duì)多三種創(chuàng)建方式
全自動(dòng):利用ORM創(chuàng)建第三張關(guān)系表
優(yōu)點(diǎn):代碼不需要寫,支持orm操作第三張表
缺點(diǎn):擴(kuò)展性不足
class Book(models.Model):name = models.CharField(max_length=32)authors = models.ManyToManyField(to='Author')純手動(dòng)
優(yōu)點(diǎn):擴(kuò)展性高
缺點(diǎn): 手寫代碼,不能使用orm提供的操作方法
class Book(models.Model):name = models.CharField(max_length=32)class Author(models.Model):name = models.CharField(max_length=32)class Book2Author(models.Model):book = models.ForeignKey(to='Book')author = models.ForeignKey(to='Author')info = models.CharField(max_length=32)半自動(dòng)
優(yōu)點(diǎn):擴(kuò)展性高,orm有提供操作
缺點(diǎn):代碼多。沒法使用add.set.remove.clear 四個(gè)方法
class Book(models.Model):name = models.CharField(max_length=32)# through_fields順序,當(dāng)前表是誰就誰在前面# through_fields以防第三張表有其他字段authors = models.ManyToManyField(to='Author',through='Book2Author',through_fields=('book','author')) class Author(models.Model):name = models.CharField(max_length=32)class Book2Author(models.Model):book = models.ForeignKey(to='Book')author = models.ForeignKey(to='Author')info = models.CharField(max_length=32)?
總結(jié):為了拓展性高,一般使用半自動(dòng)
。。。。寫代碼為自己留后路
?
?
?
?
?
?
?
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的Django09:图书管理系统笔记/choices用法/ MTV与MVC模型/多对多三种创建方式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Django08-1:模型层(ORM)-
- 下一篇: 使用Nancy打造TaskManager