您好,登錄后才能下訂單哦!
本篇文章為大家展示了如何理解djang中模型字段認識,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
model(模型) 是學習 django 最重要的知識,模型設計的好壞直接影響到你后期的開發,模型的設計只能靠自身經驗提高。模型準確且唯一的描述了數據,包含您儲存的數據的重要字段和行為。比如一個學生系統需要展示學生的姓名、年齡、分數成績等信息,這些數據就要保存到數據庫中。
我前面說過,簡單點的 web 開發就是對數據庫進行增刪改查操作,查詢數據,新增數據,修改數據,刪除數據 。當你定義好的模型信息,執行 python manager.py makemigtations 會自動生成數據庫同步腳本,模型字段和數據庫表生成映射關系(這個時候并沒有操作數據庫),執行 python manager.py migrate 后會自動執行數據庫同步腳本,對數據庫表結構進行更改操作。
每個模型都是一個 Python 的類,這些類繼承 django.db.models.Model
模型類的每個屬性都相當于一個數據庫的字段。利用這些,Django 提供了一個自動生成訪問數據庫的 API,django 可以使用 ORM 操作數據庫,就算你不熟悉 SQL 語法,也能很熟練的操作數據庫,而且就算你后期換了數據庫,項目中的關于數據庫操作的代碼不用更改。
假如,你要給一張表的每列字段設置字符類型,比如有的字段是char類型,有的是int類型,django中的模型字段類型的作用就是上面提到的設置數據表的數據類型。常見的有 字符串類型 CharField 、文本類型 TextField、整型 IntegerField、浮點型 DecimalField 、日期類型 DateTimeField,表示兩張表的外鍵關系 ForeignKey(一對多)一個班級有多個學生,多對多是 ManyToManyField。
以學生表(Student),班級表(Class)表為例,一個班級有多個學生,詳細的字段解釋見下圖:
# CharField為字符串類型,必須有max_length設置最大長度,verbose_name在django后 臺顯示該英文字段的中文意思
# IntegerField整型
# DecimalField浮點型,max_digits=5表示整數部分和小數位數之和不大于5,decimal_places表示小數的最大位數,null=True表示字段可以為空,blank=True表示在admin后臺中該數據欄可以為空
# EmailField該字段必須符合郵箱格式
# TextField 字段為文本類型,長度沒有限制
# DateTimeField為日期類型,auto_now_add=True該條數據創建的時間,數據更新時,時間數值不變
# auto_now=True該條數據創建的時間,數據更新時,時間數值也會改變
# ForeignKey一對多外鍵,第一個參數位你要關聯的數據表,比如一個班級有多個學生,就屬于一對多,外鍵要放到"多"的那張表,related_name是對外鍵取別名,常用在django的orm反向查詢中使用
上述內容就是如何理解djang中模型字段認識,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。