Django-MVT之M層總結

1、模型類設計

在應用models.py中設計模型類。
必須繼承與models.Model類。python

1)設計BookInfo類。
建立圖書類 一類web

class BookInfo(models.Model):

# btitle:圖書名稱   models.CharField:字符串類型  max_length:最大長度
btitle = models.CharField(max_length=20)

# bpub_data:圖書出版時間,須要用到日期類型   
bpub_data = models.DateField()

2)設計HeroInfo類。
建立英雄人物類 多類sql

class HeroInfo(models.Model):

# hname:英雄名
hname = models.CharField(max_length=20)

# hgender:英雄性別  models.BoolenaField:布爾類型      default=False:默認值爲False
hgender = models.BooleanField(default=False)

# hcomment:備註技能
hcomment = models.CharField(max_length=120)

# hbook:關係屬性   創建BookInfo與HeroInfo之間的一對多關係
hbook = models.ForeignKey("BookInfo")

Models.ForeignKey能夠創建兩個模型類之間一對多的關係,django在生成表的時候,就會在多端的表中建立一列做爲外鍵,創建兩個表之間一對多的關係。shell

模型類生成表
3)生成遷移文件
命令:python manage.py makemigrations
遷移文件是根據模型類生成的。
在這裏插入圖片描述
4)執行遷移生成表django

命令:python manage.py migrate
根據遷移文件生成表。
生成表名的默認格式:
應用名_模型類名小寫
sudo apt-get install sqliteman 安裝sqlite
在這裏插入圖片描述框架

2、經過模型類操做數據表

進入項目shell的命令:
python manage.py shell
如下爲在相互shell終端中演示的例子:
首先導入模型類:
from booktest.models import BookInfo,HeroInfosvg

一、向booktest_bookinfo表中插入一條數據。設計

>>> from booktest.models import BookInfo
>>> b=BookInfo()
>>> b.btitle = '三國演義'
>>> from datetime import date
>>> b.bpub_date = date(1990,10,10)
>>> b.save()
  1. 查詢出booktest_bookinfo表中id爲1的數據。
>>> b2 = BookInfo.objects.get(id=1)
  1. 在上一步的基礎上改變b對應圖書的出版日期。
>>> b2.bpub_date = date(1989,10,21)
 >>> b2.save()
  1. 緊接上一步,刪除b對應的圖書的數據。
>>> b2.delete()
  1. 向booktest_heroInfo表中插入一條數據。
>>> from booktest.models import BookInfo,HeroInfo
>>> b=BookInfo()
>>> b.btitle='天龍八部'
>>> from datetime import date
>>> b.bpub_date=date(1990,10,10)
>>> b.save()

>>> h=HeroInfo()
>>> h.hname="段譽"
>>> h.hgender=False
>>> h.hcomment='降龍十八掌'
>>> h.hbook=b
>>> h.save()
>>> h2=HeroInfo()
>>> h2.hname="喬峯"
>>> h2.hcomment="六脈神劍"
>>> h2.hbook=b
>>> h2.save()
  1. 查詢圖書表裏面的全部內容。
>>>BookInfo.objects.all()

3、關聯操做

在這裏插入圖片描述
1) 查詢出id爲2的圖書中全部英雄人物的信息。code

>>> b=BookInfo.objects.get(id=2)
>>> b.heroinfo_set.all()

4、後臺管理

1)本地化
語言和時區的本地化。
修改settings.py文件。
在這裏插入圖片描述
2)建立管理員
命令:python manage.py createsuperuser
在這裏插入圖片描述
3)註冊模型類
在應用下的admin.py中註冊模型類。
告訴djang框架根據註冊的模型類來生成對應表的管理頁面。
在這裏插入圖片描述
b = BookInfo()
str(b) --------->bookinfo.object
str -------->return self.btitle
4)自定義管理頁面
自定義模型管理類。模型管理類就是告訴django在生成的管理頁面上顯示哪些內容。
在這裏插入圖片描述sqlite