Django的模型與字段
Django的模型,包含字段field和操作方法,每個模型在數據庫中映射為一張表。
基本原則:
- 每個model在django中是一個Python類
- 每個model都是django.db.models.Model的子類
- model的每個字段代表數據表中的某一列數據
- django自動生成訪問數據庫的API
通常我們將模型編寫在model.py下。
創建了模型之後,在使用它之前,要先在settings文件中的INSTALLED_APPS
處,註冊models.py
文件所在的app
每次對模型做了增刪改操作之後,要執行數據庫同步操作
python manage.py makemigrations python manage.py migrate
字段Field
字段體現為Python中的一個類,反映在數據表上是一個列。命名字段不可使用clean
、save
、delete
等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的模型與字段