Python Django框架筆記(五) 模型

2022-02-24 11:44:20 字數 3314 閱讀 9297

#前言部分來自django book

(一)前言

大多數web應用本質上:

1、 每個頁面都是將資料庫的資料以html格式進行展現。

把資料訪問邏輯、業務邏輯和表現邏輯組合在一起的概念有時被稱為軟體架構的 model-view-controller(mvc)模式。 在這個模式中, model 代表資料訪問層,view 代表的是系統中選擇顯示什麼和怎麼顯示的部分,controller 指的是系統中根據使用者輸入並視需要訪問模型,以決定使用哪個檢視的那部分。

對於django,可以理解為遵循mvc模式:

由於 c 由框架自行處理,而 django 裡更關注的是模型(model)、模板(template)和檢視(views),django 也被稱為mtv

框架。在 mtv開發模式中:

v代表檢視(view),即業務邏輯層。 該層包含訪問模型及調取恰當模板的相關邏輯。 你可以把它看作模型與模板之間的橋梁。

如果你熟悉其它的 mvc web開發框架,比方說 ruby on rails,你可能會認為 django 檢視是控制器,而 django 模板是檢視。 很不幸,這是對 mvc 不同詮釋所引起的錯誤認識。 在 django 對 mvc 的詮釋中,檢視用來描述要展現給使用者的資料;不是資料 如何展現 ,而且展現 哪些 資料。 相比之下,ruby on rails 及一些同類框架提倡控制器負責決定向使用者展現哪些資料,而檢視則僅決定 如何 展現資料,而不是展現 哪些 資料。

兩種詮釋中沒有哪個更加正確一些。 重要的是要理解底層概念。

(二)定義模型

例如,現在有球隊、球員、主教練、雇主

(因為django 建表的時候會自動生成乙個id,除非另外指定。感覺用這個就挺方便的,所以主鍵就不用球隊編號了,球隊編號要唯一的話,做個校驗不讓使用者提交就行了)

球員:姓名、身份證號、出生日期、身高、家庭住址、手機號碼、郵箱、球隊id

主教練:姓名、身份證號、出生日期、資格證書號、級別、手機號碼、郵箱、球隊id

雇主:姓名、身份證號、球隊id

球隊 -球員:1對多。

球隊-主教練:1對1

球隊-雇主:多對多。(雖然同一級別賽事,雇主應該只能持有乙個球隊(不太了解),不過不管怎樣,這裡假定乙個人可以持有多隻球隊,乙個球隊也可以同時被多人持有)

1

from django.db import

models

2from django import

forms3#

create your models here.45

6#球隊模型

7class

team(models.model):

8 team_num = models.charfield(max_length=100) #

球隊編號

9 team_name = models.charfield(max_length=30) #

球隊名稱

10 establish_data = models.datetimefield() #

成立時間

11 people_num = models.positiveintegerfield() #

人數12 address_home = models.charfield(max_length=200) #

主場位址13#

球員 模型

14class

player(models.model):

15 player_name = models.charfield(max_length=30) #

球員名稱

16 player_card = models.charfield(max_length=30) #

球員身份證

17 birth_data = models.datetimefield() #

出生日期

18 player_height = models.positiveintegerfield() #

球員身高

19 player_address = models.charfield(max_length=200)#

家庭住址

20 player_phone = models.positiveintegerfield() #

球員手機號

21 player_email = models.emailfield()#

郵箱22 team = models.foreignkey(team,on_delete=models.cascade)#

外來鍵23

#主教練 模型

24class

coach(models.model):

25 coach_name = models.charfield(max_length=30)#

主教練名稱

26 coach_card = models.charfield(max_length=20)

27 birth_data =models.datetimefield()

28 certificate =models.imagefield()

29 coach_level =models.positiveintegerfield()

30 coach_phone =models.positiveintegerfield()

31 coach_email =models.emailfield()

32 team = models.foreignkey(team,on_delete=models.cascade) #

外來鍵33

#雇主 模型

34class

employer(models.model):

35 employer_name = models.charfield(max_length=30)

36 employer_card = models.charfield(max_length=20)

37 team = models.manytomanyfield(team) #

定義多對多關係

對於多對多關係,django會建立乙個乙個額外的表(多對多連線表)來處理他們之間的對映關係

這裡可以檢視完整的字段型別

python Django框架學習

django,發音為 d 唸作 jiang gou 是用python語言寫的開源web開發框架,並遵循mvc設計,且有乙個專有名詞mvt。利用瀏覽器訪問乙個 時。瀏覽器向伺服器發出請求,建立鏈結。伺服器接受到請求,處理後交予框架。通過框架對發來的請求進行動態的處理,處理結果發給伺服器,伺服器對結果進...

Python Django框架 補充

django rest framework orm框架整理 orm資料庫操作補充 models中的一對一操作 過濾 事務 django models中關於blank與null的補充說明 django 路由系統 及 檢視函式 補充 cbv和fbv django 內建admin詳解 定製快速增刪改查 f...

python Django安裝及框架搭建

要首先安裝pip,安裝完成之後我們執行以下 安裝 pip install django 1.11.7 版本號 然後檢查安裝是否成功 import django django.get version 在cmd中檢視版本號,如果有版本號,就安裝成功。2.搭建框架 輸入以下 建立框架 django adm...