將應用新增進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在django2.0後,定義外來鍵和一對一關係的時候需要加on_delete選項,此引數為了避免兩個表裡的資料不一致問題,不然會報錯: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) #
一本書對應多個英雄
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...