Django模型
什麼是模型?
就是你在Django的models.py中編寫的類,它必須繼承Model.model類
每個類都是資料庫中的一張資料表,類的字段既屬性就是資料表中的字段
Django通過映射對象與資料庫之間的關系,減小了學習Django的學習難度,也避免了開發者去枯燥的指令行中尋求資料庫的魅力~~
1. 模型
- 首先,模型必須繼承自
類model.Model
- 需要在子應用(也就是你用
指令建立的app,至于是什麼指令,自己想一下,權當複習了)中的xx
中建立類models.py
就像這樣:
from django.db import models
# Create your models here.
class StudyModel(models.Model):
name = models.CharField(max_length=5) # 建立一個name字段,限制長度為5個字元
phone_number = models.CharField(max_length=11) # 建立一個手機号字段,長度為11個字元
sex = models.CharField(max_length=2) # 性别字段
age = models.IntegerField() # 年齡字段
class Meta:
verbose_name = "學習資料庫"
verbose_name_plural = "資料庫"
這個類的作用就是在你使用指令後建立一個名字為:
StudyModel
的資料表,在你連接配接的資料庫裡面。
這個表的字段是:
- 姓名
- 手機号
- 性别
- 年齡
就相當于下列sql語句
create table StudyModel(
"id" serial not null primary key,
"name" varchar(5) not null,
"phone_number" varchar(11) not null,
"sex" varchar(2) not null,
"age" int not null
);
相比于sql語句是不是感覺輕松了很多,是的沒錯,Django不僅僅封裝了這點方法,還有更多的方法。
其中操作資料庫的資料可以通過對資料表進行執行個體化對象來進行操作,比如添加,删除,查詢等。
2. 常見字段類型
字段類型與sql中的類型相對于,隻不過被封裝在Django中
2.1 AutoField類型
AutoField
是一個主鍵類型,就算你不設定,也會自動設定,且預設為
id
2.2 IntergerField類型
IntergerField是一種整型資料,上面的AutoField就是是一種IntergerField,隻不過因為他比較特殊,就單獨拿出來說,他表示的範圍為:
-2147483648 到
2147483647
2.3 CharField類型
在使用中,CharFidle類型還是很常見的,比如工作,職位,名字,介紹等~~
他可以設定
max_length
屬性,來限制字元的長度
2.4 DataField類型
這是一個時間類型,他可以設定兩個參數:
- auto_now——每次儲存對象時,自動将該字段設定為現在
- auto_now_add——當第一次建立對象時,自動将該字段設定為現在。
字段類型還有很多,比如檔案類型,郵箱類型,日期類型···等以後用到了再說
3. Meta内部類
在我們的models.py代碼中,我們使用了Meta内部類,并使用了兩個參數
verbose_name
他的作用是給資料表一個名字,在背景站點