(模型二)django中模型介紹

2022-08-27 16:09:13 字數 3278 閱讀 6705

將應用新增進settings.py中

django會為表增加自動增長的主鍵列,每個模型只能有乙個主鍵列,如果使用選項設定某屬性為主鍵列後,則django不會再生成預設的主鍵列

屬性命名限制

字段型別

booleanfield:true/false 字段,此字段的預設表單控制是checkboxinput

nullbooleanfield:支援null、true、false三種值

charfield(max_length=字元長度):字串,預設的表單樣式是 textinput

textfield:大文字字段,一般超過4000使用,預設的表單控制項是textarea

integerfield:整數

decimalfield(max_digits=none, decimal_places=none):使用python的decimal例項表示的十進位制浮點數

floatfield:用python的float例項來表示的浮點數

datefield[auto_now=false, auto_now_add=false]):使用python的datetime.date例項表示的日期

timefield:使用python的datetime.time例項表示的時間,引數同datefield

datetimefield:使用python的datetime.datetime例項表示的日期和時間,引數同datefield

filefield:乙個上傳檔案的字段

imagefield:繼承了filefield的所有屬性和方法,但對上傳的物件進行校驗,確保它是個有效的image

字段選項

關係可以維護遞迴的關聯關係,使用'self'指定,詳見「自關聯」

用一訪問多:物件.模型類小寫_set

bookinfo.heroinfo_set         (顯示一本書對應的多個英雄)
heroinfo.bookinfo             (顯示乙個英雄對應的一本書)
heroinfo.book_id
例如:

定義兩個模型類bookinfo(書)、heroinfo(英雄),其中一本書對應多個英雄(一對多的關係)

bookinfo

heroinfo

book(字段) = models.foreignkey(bookinfo)

有乙個英雄物件hero,  hero.book_id 或 hero.book.id    (通過這個英雄找到其對應的書的id,因為裡面存的是它的id)

有乙個書物件book,     book.heroinfo_set   (通過書找到其對應的所有英雄,heroinfo_set其中的heroinfo是heroinfo的小寫)

class bookinfo(models.model):

...class meta():

ordering = ['id']

class bookinfo(models.model):

...class meta():

ordering = ['-id']

from django.db import

models

class

bookinfo(models.model):

btitle = models.charfield(max_length=20)

bpub_date = models.datetimefield(db_column='

pub_date

') #

db_column:欄位的名稱,如果未指定,則使用屬性的名稱

bread = models.integerfield(default=0) #

閱讀量 bcommet = models.integerfield(null=false) #

null=false表示不能為空

isdelete = models.booleanfield(default=false)

class

meta:

db_table = '

bookinfo'#

預設為booktest_bookinfo

class

heroinfo(models.model):

hname = models.charfield(max_length=10)

hgender = models.booleanfield(default=true)

hcontent = models.charfield(max_length=1000)

isdelete = models.booleanfield(default=false)

book = models.foreignkey(bookinfo, on_delete=models.cascade) #

一本書對應多個英雄

在django2.0後,定義外來鍵和一對一關係的時候需要加on_delete選項,此引數為了避免兩個表裡的資料不一致問題,不然會報錯:

typeerror: __init__() missing 1 required positional argument: 'on_delete'

book = models.foreignkey(bookinfo)---->book = models.foreignkey(bookinfo, on_delete=models.cascade)
遷移

在cmd中檢視mysql

檢視兩個表的內容

Django 模型層 模型

django內建模型方法 乙個模型包含了資料的字段和操作方法,每個模型對映為一張資料庫中的表 person models.py from django.db import models class person models.model first name models.charfield max...

Django 教程 Django 模型

乙個django模組是內建的功能,django使用建立表,他們的田地,和各種約束。簡而言之,django models是與django一起使用的sql資料庫。sql 結構化查詢語言 很複雜,涉及許多不同的查詢,用於建立,刪除,更新或與資料庫有關的任何其他內容。django模型簡化了任務並將表組織到模...

Django模型應用

django模型應用 在web 應用中,主觀邏輯經常牽涉到與資料庫的互動。資料庫驅動 在後台連線資料庫伺服器,從中取出一些資料,然後在 web 頁面用漂亮的格式展示這些資料。這個 也可能會向訪問者提供修改資料庫資料的方法。在django中同樣提供了資料庫的互動功能,就是我們所說的mtv中的 m or...