1. 程式人生 > >Django的模型與字段

Django的模型與字段

字符數 clas 增刪 rfi sta area datetime 頁面 options

Django的模型,包含字段field和操作方法,每個模型在數據庫中映射為一張表。

基本原則:

  1. 每個model在django中是一個Python類
  2. 每個model都是django.db.models.Model的子類
  3. model的每個字段代表數據表中的某一列數據
  4. django自動生成訪問數據庫的API

通常我們將模型編寫在model.py下。

創建了模型之後,在使用它之前,要先在settings文件中的INSTALLED_APPS 處,註冊models.py文件所在的app

每次對模型做了增刪改操作之後,要執行數據庫同步操作

python manage.py makemigrations
python manage.py migrate

字段Field

字段體現為Python中的一個類,反映在數據表上是一個列。命名字段不可使用cleansavedelete等Django內置的模型API名字,也不能使用雙下劃綫,因這是Django內置的一種查詢字段的方法。

Django的字段都是繼承自django.db.models,也可以自定義。通常命名用駝峰命名法,如AutoField。

常用字段類型:

CharField:字符串類型,必須接收一個max_length參數

DateField:class DateField(auto_now=False, auto_now_add=False, **options)日期類型。一個Python中的datetime.date的實例。兩個重要參數:(參數互斥,不能共存) auto_now

:每當對象被保存時將字段設為當前日期,常用於保存最後修改時間。auto_now_add:每當對象被創建時,設為當前日期,常用於保存創建日期(註意,它是不可修改的)。

EmailField:郵箱驗證字段,默認max_length最大長度254位

ImageField:圖片類型字段

FileField:上傳文件字段,class FileField(upload_to=None, max_length=100, **options)。

IntegerField:整數類型,最常用的字段之一。取值範圍-2147483648到2147483647

TextField:大量文本內容,在HTML中表現為Textarea標簽,最常用的字段類型之一!如果你為它設置一個max_length參數,那麽在前端頁面中會受到輸入字符數量限制,然而在模型和數據庫層面卻不受影響。只有CharField才能同時作用於兩者。

Django的模型與字段