Django 模型简介
什么是Django模型?
Django模型是Django框架中用于与数据库交互的核心组件。模型是一个Python类,它定义了数据的结构和行为。每个模型类对应数据库中的一张表,而模型的属性则对应表中的字段。通过Django模型,开发者可以以面向对象的方式操作数据库,而无需直接编写SQL语句。
Django的ORM(对象关系映射)系统会自动将模型类映射到数据库表,并生成相应的SQL语句。这使得开发者可以专注于业务逻辑,而不必担心底层的数据库操作。
定义一个简单的Django模型
让我们从一个简单的例子开始。假设我们正在开发一个博客应用,我们需要定义一个 Post
模型来表示博客文章。
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
published_date = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
代码解析
models.Model
:所有Django模型都必须继承自models.Model
类。title
:这是一个字符字段,最大长度为200个字符。content
:这是一个文本字段,用于存储文章的正文内容。published_date
:这是一个日期时间字段,auto_now_add=True
表示在创建记录时自动设置为当前时间。__str__
方法:定义了模型的字符串表示形式,通常在管理界面中显示。
数据库表的生成
当你运行 python manage.py makemigrations
和 python manage.py migrate
命令时,Django会根据这个模型在数据库中创建一张表。生成的SQL语句类似于:
CREATE TABLE blog_post (
id SERIAL PRIMARY KEY,
title VARCHAR(200) NOT NULL,
content TEXT NOT NULL,
published_date TIMESTAMP NOT NULL
);
模型字段类型
Django提供了多种字段类型来满足不同的数据存储需求。以下是一些常用的字段类型:
CharField
:用于存储短文本,如标题。TextField