ORM 模型层
一個模型就是一個單獨的,確定的數據的信息源,包含了數據的字段和操作方法。通常,每個模型映射為一張數據庫中的表
基本原則:
- 每個模型在Django中的存在形式為一個python類
- 每個模型都是django.db.modeks.Model的子類
- 模型的每個字段(屬性)代表數據表的某一列
- Django將自動為你生成數據庫訪問API.
簡單示例
下面的模型定義了一個“人”,它具有first_name和last_name字段:
from django.db import modelsclass Person(models.Model):first_name = models.CharField(max_length=30)last_name = models.CharField(max_length=30)這里每個字段都是一個類屬性,每個類屬性表示數據表中的一個列。
上面代碼,如下滿原生SQL語句
CREATE TABLE app01_person ("id" serial NOT NULL PRIMARY KEY,"first_name" varchar(30) NOT NULL,"last_name" varchar(30) NOT NULL );注意:
表名app01_person 由django自動生成,默認格式為“項目名稱+下劃線+小寫類名”。這個類名規則也可以重寫
Django會默認自動創建自增主鍵id,(也可以自己指定主鍵)。
通常,我們都默認把模型編寫都寫在app下的models.py
創建了模型之后,在使用它之前,你需要先在settings文件中的INSTALLED_APPS 處,注冊models.py文件所在的myapp。看清楚了,是注冊app,不是模型,也不是models.py。
當我們對模型進行增、刪、改時,需執行python manage.py makemigrations?? 和 python manage.py migratee
模型字段fields
字段是模型中最重要的內容之一,也是唯一必須的部分。
字段在python中表現為一個類屬性,體現為數據表中一個列。不要使用clean 、save 、delete 等django內置的模型API名字,防止命名沖突。
?注意字段的寫法
from django.db import models# 音樂家 class Musician(models.Model):first_name = models.CharField(max_length=50)last_name = models.CharField(max_length=50)instrument = models.CharField(max_length=100)class Album(models.Model):artist = models.ForeignKey(Musician, on_delete=models.CASCADE)name = models.CharField(max_length=100)release_date = models.DateField()num_stars = models.IntegerField()字段名命名約束
Django不允許下面兩種字段名:
轉載于:https://www.cnblogs.com/jassin-du/p/8343527.html
總結
- 上一篇: springboot + profile
- 下一篇: IOS 粒子发射器,雪花落下、创建火焰、