Model介绍
model是关于数据的唯一、准确的信息描述。它包含数据的必要字段和行为。通常每个模型都映射到一个数据表。
- 每个model都是一个python的类,所以model对象都是django.db.models.Model的子类。
- 每个model的属性都是代表一个数据库表上的一个字段。
- django为您准备好了数据库的访问API
快速demo
下面的demo中,我们首先定义一个Person,然后给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 都是model的属性,而且在代码中都明确了他们的类型,并且每个属性都对应到数据库上的一个字段。
上面的代码对应到数据库层面就是如下sql语句
CREATE TABLE myapp_person(
"id" serial NOT NULL PRIMARY KEY,
"first_name" varchar(30) NOT NULL,
"last_name" varchar(30) NOT NULL
);
相关技术细节
- 数据库表名myapp_person是由系统根据model的metadata信息进行自动生成。更多信息可以看table-names
- id 属性是自动添加的,但是这个behavior是可以被重写的。
- 上面的sql语句是PostgreSQL的语法,您可以子啊settings里面配置具体数据库类型
网友评论