Django資料表生成,Class Mate解釋

2021-10-19 07:33:21 字數 2813 閱讀 8530

abstract 抽象類

class

human

(models.model)

: name=models.

charfield

(max_length=

100)

gender_choice=

((u'm'

,u'male'),

(u'f'

,u'female'),

) gender=models.

charfield

(max_length=

2,choices=gender_choice,null=true)

class

meta

:abstract

=true

managed=true

abstract 這個屬性是定義當前的模型類是不是乙個抽象類。

所謂抽象類是不會生成相應資料庫表的。

一般我們用它來歸納一些公共屬性字段,然後繼承它的子類能夠繼承這些字段。

managed django會自動生成對映的資料庫表,設定成managed=false,就不會生成對映資料表

db_table 重寫資料庫表名稱

class

book

(models.model)

: name =models.

charfield

(max_length=32)

def __str__

(self)

:return self.name

class

meta

: db_table =

"book"

預設情況下,django 會根據模型類的名稱和包含它的應用的名稱自動指定資料庫表名稱。eg:

blog_type

使用 meta類中的 db_table 引數來重寫資料表的名稱

managed 管理表的建立、刪除

1.預設為true,意思是django在migrate命令中建立合適的資料表,並且會在 flush 管理命令中移除它們。換句話說,django會管理這些資料表的生命週期。

2.如果是false,django 就不會為當前模型建立和刪除資料表。如果當前模型表示乙個已經存在的,通過其它方法建立的資料庫檢視或者資料表,這會相當有用。

3.當設定為managed=false時,需要注意一下幾點:

- 如果你不宣告它的話,會向你的模型中新增乙個自增主鍵。為了避免給後面的**讀者帶來混亂,強烈推薦你在使用未被管理的模型時,指定資料表中所有的列。

- 如果乙個帶有managed=false的模型含有指向其他未被管理模型的manytomanyfield,那麼多對多連線的中介表也不會被建立。

- 但是,乙個被管理模型和乙個未被管理模型之間的中介表會被建立。

- 如果你需要修改這一預設行為,建立中介表作為顯式的模型(設定為managed),並且使用manytomanyfield.through為你的自定義模型建立關聯。

- 對於帶有managed=false的模型的測試,你要確保在測試啟動時建立正確的表。

ordering 排序

物件預設的順序,獲取乙個物件的列表時使用:

ordering =

['-order_date'

]它是乙個字串的列表或元組。每個字串是乙個欄位名,前面帶有可選的「-」字首表示倒序。前面沒有「-」的字段表示正序。使用"?"來表示隨機排序。

1.例如,要按照pub_date欄位的正序排序,這樣寫:   ordering =

['pub_date'

]2.按照pub_date欄位的倒序排序,這樣寫:   ordering =

['-pub_date'

]3.先按照pub_date的倒序排序,再按照 author 的正序排序,這樣寫: ordering =

['-pub_date'

,'author'

]

unique_together 新增unique

用來設定的不重複的字段組合:unique_together =((

"driver"

,"restaurant"),

)1.它是乙個元組的元組,組合起來的時候必須是唯一的。

2.它在django後台中被使用,在資料庫層上約束資料(比如,在 create table 語句中包含 unique語句)。

為了方便起見,處理單一欄位的集合時,unique_together 可以是一維的元組:unique_together =

("driver"

,"restaurant"

)

index_together 新增索引

用來設定帶有索引的字段組合:

index_together =[[

"pub_date"

,"deadline"],

]列表中的字段將會建立索引(例如,會在create index語句中被使用)。

為了方便起見,處理單一欄位的集合時,index_together可以是乙個一維的列表:index_together =

["pub_date"

,"deadline"

]

django刪除資料表以及對資料表進行改動更新

實在是氣的不行,被坑的太難受了,為了防止有人繼續走彎路,我來寫這篇文章了。本人屬於大學需要做專案,自己摸索著使用django,所以最開始django的資料庫就是個老大難的問題,當我生成的資料表我想刪除時,我去網上查了很多解答,那些辦法不僅複雜的不行,還無數次的把我的資料庫整崩,然後我就不斷的重新建新...

根據資料表中資料,生成Powerpoint幻燈片

曾經有乙個問題,一直困擾我很久。由於工作的需要,經常需要把access資料表的內容,製作成powerpoint幻燈片,常常在做大量的單調的重複的簡單勞動。作為乙個程式設計的愛好者,最不願意做的就是這種簡單機械的事情。那麼,如何根據資料表中資料,生成powerpoint幻燈片呢?我的具體要求是這樣的 ...

提取資料表中資料生成html

1.在做辦公自動化的時候,通常會遇到這樣的問題,需要從資料庫中提取資料.生成html語句 2.傳送htm到郵件中去 public static dataset getdataset string strcommandstring,string strtablename 取得ds using syst...