Django學習(四):使用models

Models

一個模型通常用來確定數(shù)據的唯一性和來源信息,它包含要存儲的數(shù)據的基本字段和行為。通常陶冷,每個模型映射到一個數(shù)據庫表晌梨。

  • 每個模型都是一個Python類桥嗤,該類集成了django.db.models.Model
  • 模型的每個屬性表示一個字段

簡單的表模型

from django.db import models

class ScarpPort(models.Model):
    # primary_key=True 表示為主鍵
    # AutoField 表示為自增字段
    id = models.AutoField(primary_key=True)
    # max_length 表示為該字段最大長度
    # CharField表示為字段類型為varchar
    nick_name = models.CharField(max_length=64)
    station_name = models.CharField(max_length=64)
    scarp_car_type = models.CharField(max_length=64)
    floor_spot_name = models.CharField(max_length=64)
    drive_order_model = models.CharField(max_length=64)
    # IntegerField 表示為該字段類型為int
    status = models.IntegerField()

    class Meta:
        # 設置表名為scarp_port
        db_table = 'scarp_port'

遷移數(shù)據庫

makemigrations

該命令會在每個app目錄下創(chuàng)建migrations目錄须妻,并在該目錄下生成數(shù)據庫遷移文件(可以在該文件中看到詳細的SQL語句)。

migrate

執(zhí)行遷移泛领,使用該命令會讀取settings文件中的INSTALL_APPS中的app 和 數(shù)據庫配置荒吏。
將app中的models文件遷移到數(shù)據庫中生成數(shù)據庫和表。

Field選項

verbose_name 和 help_text
    id = models.AutoField(primary_key=True)
    sn = models.CharField(max_length=64, verbose_name='訂單號')
    scarp_port = models.CharField(max_length=64, verbose_name='廢料口', help_text='該任務由哪個廢料口創(chuàng)建')
    type = models.IntegerField(choices=TYPE, verbose_name='類型')
    status = models.IntegerField(choices=STATUS, default=0, verbose_name='狀態(tài)')
    create_time = models.DateTimeField(verbose_name='創(chuàng)建時間')
    start_time = models.DateTimeField(verbose_name='開始時間', null=True)
    end_time = models.DateTimeField(verbose_name='完成時間', null=True)

相當于別名渊鞋,在django admin中字段標題將顯示為verbose_name,help_text 將顯示為幫助文檔


image
image
choices
class TransportOrder(models.Model):
    TYPE = (
        (0, 'EMPTY'),
        (1, 'FULL')
    )

    STATUS = (
        (0, 'DISPATCHABLE'),
        (1, 'BEING_PROCESSED'),
        (2, 'FINISHED'),
        (3, 'FAILED')
    )
    id = models.AutoField(primary_key=True)
    sn = models.CharField(max_length=64)
    scarp_port = models.CharField(max_length=64)
    # choices 設置為上面的TYPE元組
    type = models.IntegerField(choices=TYPE)
    # choices 設置為上面的STATUS元組
    status = models.IntegerField(choices=STATUS, default=1)
    create_time = models.DateTimeField()
    start_time = models.DateTimeField()
    end_time = models.DateTimeField()

    class Meta:
        db_table = 'transport_order'

由二元元組組成的選項條件绰更,如果使用了choices 在默認的表單中將會是一個選擇框,而不是標準的文本框锡宋,并且將選擇限制在元組中动知。

get_FOO_display()

元組的第一個元素將會存儲在數(shù)據庫中,第二個元素可以通過_display()顯示员辩,例如:

>>> t = TransportOrder(sn='123', type=0)
>>> t.save()
>>> t.type
1
>>> t.get_type_display()
'EMPTY'

class Meta

ording

設置排序規(guī)則

    ...
    ...
    end_time = models.DateTimeField(verbose_name='結束時間', null=True)
    class Meta:
        ordering = ['create_time', 'order']

效果:


image
db_table

保存到數(shù)據庫中的表名

verbose_name

別稱

verbose_name_plural

別稱復數(shù)

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末盒粮,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子奠滑,更是在濱河造成了極大的恐慌丹皱,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宋税,死亡現(xiàn)場離奇詭異摊崭,居然都是意外死亡,警方通過查閱死者的電腦和手機杰赛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門呢簸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人乏屯,你說我怎么就攤上這事根时。” “怎么了辰晕?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵蛤迎,是天一觀的道長。 經常有香客問我含友,道長替裆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任窘问,我火速辦了婚禮辆童,結果婚禮上,老公的妹妹穿的比我還像新娘惠赫。我一直安慰自己把鉴,他們只是感情好,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布汉形。 她就那樣靜靜地躺著纸镊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪概疆。 梳的紋絲不亂的頭發(fā)上逗威,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機與錄音岔冀,去河邊找鬼凯旭。 笑死,一個胖子當著我的面吹牛使套,可吹牛的內容都是我干的罐呼。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼侦高,長吁一口氣:“原來是場噩夢啊……” “哼嫉柴!你這毒婦竟也來了?” 一聲冷哼從身側響起奉呛,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤计螺,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后瞧壮,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體登馒,經...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年咆槽,在試婚紗的時候發(fā)現(xiàn)自己被綠了陈轿。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡秦忿,死狀恐怖麦射,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情灯谣,我是刑警寧澤法褥,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站酬屉,受9級特大地震影響半等,放射性物質發(fā)生泄漏。R本人自食惡果不足惜呐萨,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一杀饵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧谬擦,春花似錦切距、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽话肖。三九已至,卻和暖如春葡幸,著一層夾襖步出監(jiān)牢的瞬間最筒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工蔚叨, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留床蜘,地道東北人。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓蔑水,卻偏偏與公主長得像邢锯,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子搀别,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內容