Django中的模型与数据库(Models and database)
对于数据库大家都不陌生,但是Models该怎么理解,官方文档中有这么一句话:
A model is the single, definitive source of data about your data. It contains the essential fields and behaviors of thedata you’re storing. Generally, each model maps to a single database table.
下文暂且称Models为“模型”(个人叫法)
那么,模型具备以下三个特征:
每一个模型都是一个python子类。继承django.db.models.Model模型的每一个属性代表一个数据库字段除了上述之外,jango还提供了自动生成数据库访问的API为了方便理解我们举个例子下面这个例子我们建立了一个Person的模型,且有两个字段)first_name,last_name
from django.db import models
class Person(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
first_name和last_name是Person模型的Field,每一个Field都是一个指定的类的属性,每一个属性映射到数据库的没一列
这里我就有一个疑问,到底Field能不能称为字段?
上面的Person模型将会对应一张这样的数据库表:
CREATE TABLE myapp_person (
"id" serial NOT NULL PRIMARY KEY,
"first_name" varchar(30) NOT NULL,
"last_name" varchar(30) NOT NULL
);
下面我们聊聊使用,一旦你声明了一个models,你需要去告诉jango你将会去使用该models,在你的settings里把你的
应用名加到INSTALLED_APPS中
INSTALLED_APPS = (
#...
’myapp’,
#...
)
当你在INSTALLED_APPS添加新应用后,需要执行manage.py migrate
接下来我们再来说说Fields
它是模型的重要的一部分,它定义了数据库表的字段
from django.db import models