Django-model

DRY
對(duì)于不同數(shù)據(jù)源都應(yīng)該獨(dú)立存在,減少冗余的數(shù)據(jù)。

model就是你唯一可信的真實(shí)數(shù)據(jù)源。它包含了你所要存儲(chǔ)數(shù)據(jù)的必須字段和行為信息。Django遵循DRY 目的是讓你可以在一個(gè)地方定義你的數(shù)據(jù)模型,并以它來(lái)驅(qū)動(dòng)整個(gè)項(xiàng)目
簡(jiǎn)單來(lái)說(shuō)就是本地?cái)?shù)據(jù)

from django.db import models
class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
class Choice(models.Model):
    question = models.ForeignKey(Question)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

上面的代碼表明了每一個(gè)類(lèi)都是繼承models.Model,每一個(gè)類(lèi)都有數(shù)個(gè)對(duì)應(yīng)數(shù)據(jù)庫(kù)字段的類(lèi)成員變量組成。
每一個(gè)類(lèi)成員變量中必選參數(shù)和可選參數(shù),

可選參數(shù)
方法名 具體用法
default 默認(rèn)參數(shù)
primary_key 主鍵,默認(rèn)是遞增數(shù)字
max_length 允許的最大長(zhǎng)度
unique 默認(rèn)是false。唯一值
choices 它是一個(gè)可迭代的二元組(例如,列表或是元組),用來(lái)給字段提供選擇項(xiàng)。
blank 默認(rèn)false,可以為空
model子類(lèi)的方法(部分)
方法名 具體用法
AutoField 必須設(shè)置為主鍵的field才能設(shè)置,int類(lèi)型。產(chǎn)生一個(gè)自增的主鍵,一個(gè)model中不能超過(guò)1個(gè)值
BigAutoField 自增長(zhǎng)的數(shù)據(jù)為8字節(jié)空間
BigIntegerField 返回8字節(jié)的整型類(lèi)型
BinaryField 二進(jìn)制類(lèi)型
BooleanField 布爾型和NullBooleanField有區(qū)別,true/false,本類(lèi)型不允許出現(xiàn)null
CharField 定長(zhǎng)的字符串類(lèi)型,一般創(chuàng)建時(shí)寫(xiě)入max_length
CommaSeparatedIntegerField 逗號(hào)分隔的整數(shù),考慮到數(shù)據(jù)庫(kù)的移植性,max_length參數(shù)應(yīng)該必選
DateField 對(duì)應(yīng)Python的datetime.date,額外的參數(shù):DateField.auto_now表示是否每次修改時(shí)改變時(shí)間,DateField.auto_now_add 表示是否創(chuàng)建時(shí)表示時(shí)間,一般來(lái)說(shuō)數(shù)據(jù)庫(kù)重要的表都要有這樣的字段記錄創(chuàng)建字段時(shí)間個(gè)最后一次改變的時(shí)間。
TextField 不定長(zhǎng)的字符串類(lèi)型
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容