Django 框架主要关注的是模型(Model)、模板(Template)和视图(Views),称为MTV模式。
它们各自的职责如下:
层次 | 职责 |
---|---|
模型(Model),即数据存取层 | 处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。 |
模板(Template),即业务逻辑层 | 处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。 |
视图(View),即表现层 | 存取模型及调取恰当模板的相关逻辑。模型与模板的桥梁。 |
简单来说就是Model存取数据,View决定需要调取哪些数据,而Template则负责将调取出的数据以合理的方式展现出来。
在 Django 里写一个数据库驱动的 Web 应用的第一步是定义模型Model,也就是数据库结构设计和附加的其它元数据。
模型包含了储存的数据所必要的字段和行为。Django 的目标是你只需要定义数据模型,其它的杂七杂八代码你都不用关心,它们会自动从模型生成。
所以让我们首先搞定Model。
编写Model.py
如前面所讲,Django中通常一个模型(Model)映射一个数据库,处理与数据相关的事务。
对博客网站来说,最重要的数据就是文章。所以首先来建立一个存放文章的数据模型。
打开article/models.py
文件,输入如下代码:
article/models.py
from django.db import models
# 导入内建的User模型。
from django.contrib.auth.models import User
# timezone 用于处理时间相关事务。
from django.utils import timezone
# 博客文章数据模型
class ArticlePost(models.Model):
# 文章作者。参数 on_delete 用于指定数据删除的方式,避免两个关联表的数据不一致。
author = models.ForeignKey(User, on_delete=models.CASCADE)
# 文章标题。models.CharField 为字符串字段,用于保存较短的字符串,比如标题
title = models.CharField(max_length=</