1.models
models是关于您的数据的单一,明确的信息来源。它包含您正在存储的数据的重要字段和行为。通常,每个模型映射到单个数据库表。每个模型都是一个子类的Python类 django.db.models.Model。模型的每个属性表示一个数据库字段。在代码层面,模型就是一个类,包含属性和方法。模型中最重要的部分 - 也是模型的唯一必需部分 - 是它定义的数据库字段的列表。字段由类属性指定。模型中的每个字段都应该是相应Field
类的实例 。
2.示例(来自django官方文档)
这个示例模型定义了一个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
模型会创建一个如下所示的数据库表:
CREATE TABLE myapp_person (
"id" serial NOT NULL PRIMARY KEY,
"first_name" varchar(30) NOT NULL,
"last_name" varchar(30) NOT NULL
);
一些技术说明:
- 表的名称
myapp_person
,自动从某些模型元数据派生,但可以被覆盖。 - 一个
id
字段会自动添加,但是这种行为可以被覆盖。
3.使用模型
在setting.py的ISTALLED_APPS中添加模型所在的app名称,如my_blog_codes.models,则添加my_blog_codes到INSTALLED_APPS中
4.关系
Django提供了定义三种最常见类型的数据库关系的方法:多对一,多对多和一对一。
5.meta
通过使用内部模型来提供模型元数据