Django之models.py

模型是寫一個數據庫驅動的web的第一步,也就是數據庫結構設計和附加的其它元數據

也就是說你的models.py決定了你數據庫的長相。

下面時自己在完成todolist項目時用的一部分models,在這裏記一下,以備後查

定義的方法爲:

from django.db import models
#用戶信息表
class UserInfo(models.Model):
    name = models.CharField(max_length=255,verbose_name='姓名')
    Phone = models.BooleanField(default=False,verbose_name='聯繫方式')
    gender = models.CharField(max_length=6,choices=(('male',''男),('female','女')),default='female',verbose_name='性別')
    class Meta:
        verbose_name = '用戶信息'
        verbose_name_plural = verbose_name  #指定模型的複數形式是什麼,如果不指定Django會自動在模型名稱後加一個’s’
#每一位用戶的todo列表
class UserTodo(models.Model):
    todo = models.CharField(max_length,verbose_name='todo信息')
    user = model.ForeignKey(UserInfo,ondelete=models.CASCADE)
    created_time = model.DateTimeField(default=datetime.now(),verbose_name='創建時間')
    class Meta:
        verbose_name='todo表'
        verbose_name_plural = verbose_name 

官方文檔

Field的選項有:

  • null :用法model.**Field(null=True(False)),如果是True,Django則會在數據庫中存儲空的值,默認爲False;
  • blank:用法model.**Field(blank=True(False)),如果是True,Django則會在數據庫中存儲內容爲空的值(注意與null的區別,null是在數據庫的角度),默認爲False;
  • choices:用法model.**Field(choices=(('male','男'),('female','女'))),choices的對象應爲可迭代的,例如列表或者元組。故名思意,如果給出choices,則會在表單中給出選項可以進行選擇;
  • default:用法model.**Field(default=***),給這個filed設置默認值,當callable,則每創建一個新的對象,這個default就會被調用一次
  • verbose_name:用法model.**Field(verbose='人類可讀的數據庫的列名')
  • ......

Field的類model.**Field(一直糾結的地方):

  • AutoField:若指定數據庫則會自動根據可用ID創建一個InterField 的自增的對象,一般不需要指定;
  • BigAutoField:與AutoField一樣,不過數字範圍更大,從1到9223372036854775807;
  • BigIntegerField:與IntegerField 類似,用來存儲整型數據,不過也是範圍更大,從-9223372036854775808到9223372036854775807;
  • BinaryField:存儲原始二進制數據的字段,只接受字節的指定
  • BooleanField:多用在CheckboxInput中,存儲True或False,若接受null 可以用NullBooleanField
  • CharField:用來存儲字符串,大小字符串兼收不誤,若想要存儲十分大量的文本,可以用TextField;CharField默認匹配的表單組件是TextInput;注意它有一個特殊的參數:max_length 用來限定存儲字符的最長長度,在存儲時,Django和數據庫都會進行驗證長度是否滿足要求。
  • DateField:用來存儲日期,額外的參數有:auto_now,auto_now_add
  • DateTimeField:用來存儲日期和時間,額外的參數有:auto_now,auto_now_add
發佈了28 篇原創文章 · 獲贊 26 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章