基础

  • 每个 model 都是 django.db.models.Model 的子类
  • 每个属性都代(对应)表数据表中的一个字段
  • django 会自动会模型生成数据库操作方法的抽象(ORM)

小栗子

models.py 文件中创建一个新模型 Person,包含 first_namelast_name 两个字段。

from django.db import models

class Person(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)

与此相对应的 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。可在 class Meta 中设置 db_table 属性自定义表名。
  • 自增 id 字段会被自动添加,无需手动指定。
  • django 会根据实际使用的数据库后端自动生成并处理准确的 SQL 语句。