Django Model 字段部分詳解

2021-10-04 14:24:44 字數 2665 閱讀 8210

django提供了乙個抽象層(「model」)來構建和管理web應用程式的資料。

django中遵循 code frist 的原則,即:根據**中定義的類來自動生成資料庫表。

1. 建立表

a、基本結構

from django.db import models

class userinfo(models.model):

name = models.charfield(max_length=30)

email = models.emailfield()

memo = models.textfield()

1、null=true

資料庫中欄位是否可以為空

2、blank=true

django的 admin 中新增資料時是否可允許空值

3、primary_key = false

主鍵,對autofield設定主鍵後,就會代替原來的自增 id 列

4、auto_now 和 auto_now_add

auto_now 自動建立---無論新增或修改,都是當前操作的時間

auto_now_add 自動建立---永遠是建立時的時間

5、choices

gender_choice = (

(u'm', u'male'),

(u'f', u'female'),

)gender = models.charfield(max_length=2,choices = gender_choice)

6、max_length

7、default  預設值

8、verbose_name  admin中字段的顯示名稱

9、name|db_column  資料庫中的欄位名稱

10、unique=true  不允許重複

11、db_index = true  資料庫索引

12、editable=true  在admin裡是否可編輯

13、error_messages=none  錯誤提示

14、auto_created=false  自動建立

15、help_text  在admin中提示幫助資訊

16、validators=

17、upload-to

1、models.autofield  自增列 = int(11)

如果沒有的話,缺省會生成乙個名稱為 id 的列,如果要顯示的自定義乙個自增列,必須將給列設定為主鍵 primary_key=true。

2、models.charfield  字串字段

必須 max_length 引數

3、models.booleanfield  布林型別=tinyint(1)

不能為空,blank=true

4、models.comaseparatedintegerfield  用逗號分割的數字=varchar

繼承charfield,所以必須 max_lenght 引數

5、models.datefield  日期型別 date

對於引數,auto_now = true 則每次更新都會更新這個時間;auto_now_add 則只是第一次建立新增,之後的更新不再改變。

6、models.datetimefield  日期型別 datetime

同datefield的引數

7、models.decimal  十進位制小數型別 = decimal

必須指定整數字max_digits和小數字decimal_places

8、models.emailfield  字串型別(正規表示式郵箱) =varchar

對字串進行正規表示式

9、models.floatfield  浮點型別 = double

10、models.integerfield  整形

11、models.bigintegerfield  長整形

integer_field_ranges =

12、models.ipaddressfield  字串型別(ip4正規表示式)

13、models.genericipaddressfield  字串型別(ip4和ip6是可選的)

引數protocol可以是:both、ipv4、ipv6

驗證時,會根據設定報錯

14、models.nullbooleanfield  允許為空的布林型別

15、models.positiveintegerfiel  正integer

16、models.positivesmallintegerfield  正smallinteger

17、models.slugfield  減號、下劃線、字母、數字

18、models.smallintegerfield  數字

資料庫中的字段有:tinyint、smallint、int、bigint

19、models.textfield  字串=longtext

20、models.timefield  時間 hh:mm[:ss[.uuuuuu]]

21、models.urlfield  字串,位址正規表示式

22、models.binaryfield  二進位制

23、models.imagefield

24、models.filepathfield 檔案

Django model欄位型別清單

django 通過 models 實現資料庫的建立 修改 刪除等操作,本文為模型中一般常用的型別的清單,便於查詢和使用 charfield.max length 字元的最大長度,django會根據這個引數在資料庫層和校驗層限制該字段所允許的最大字元數。auto now 當物件被儲存時,自動將該字段的...

Django model欄位型別清單

django 通過 models 實現資料庫的建立 修改 刪除等操作,本文為模型中一般常用的型別的清單,便於查詢和使用 charfield.max length 字元的最大長度,django會根據這個引數在資料庫層和校驗層限制該字段所允許的最大字元數。auto now 當物件被儲存時,自動將該字段的...

django Model 字段型別,選項

示例 class test models.model name models.charfield max length 20 add time models.datetimefield 字段型別 booleanfield true false 字段,此字段的預設表單控制是checkboxinput ...