Django 采用了MVC的软件设计模式,即模型M,视图V和控制器C
模型models: 负责处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。模板(Template),即业务逻辑层:层处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。视图(View),即表现层:存取模型及调取恰当模板的相关逻辑。模型与模板的桥梁。数据库表结构
博客最主要的功能就是展示我们写的文章,它需要从某个地方获取博客文章数据才能把文章展示出来,通常来说这个地方就是数据库。我们把写好的文章永久地保存在数据库里,当用户访问我们的博客时,django 就去数据库里把这些数据取出来展现给用户。一篇现代化文章需要有标题,正文,作者,分类,标签,发布时间,评论等等。为了更好的方便管理,我们需要合理的组织数据表结构。下面我们来看看数据库表长啥样数据库表结构
下面我们开始编写模版
编写博客模型代码
进入 article/models.py
from django.db import models # 导入模型 from django.contrib.auth.models import User # 导入django自带的用户模型 from django.utils import timezone class Category(models.Model): name = models.CharField(max_length=30) class Tags(models.Model): name = models.CharField(max_length=30) class Article(models.Model): # 标题 title = models.CharField(max_length=100) # 正文 body = models.TextField() # 作者 author = models.ForeignKey(User,on_delete=models.CASCADE) # 创建时间 created_time= models.DateTimeField(default=timezone.now) # 文章摘要 excerpt = models.CharField(max_length=200, blank=True) # 分类 category = models.ForeignKey(Category,on_delete=models.CASCADE) # 标签 tags = models.ManyToManyField(Tags,blank=True)代码解读:
Article(文章)类继承了models.py里面的Model类title(标题) 数据类型是CharField,允许最大长度max_length=100body (正文)数据类型是TextField,不限制长度author(作者)数据类型是ForeignKey,这里 User 是从 django.contrib.auth.models 导入的,django.contrib.auth 是 django 内置的应用,专门用于处理网站用户的注册、登录等流程。这里我们通过 ForeignKey 把文章和 User关联了起来,因为我们规定一篇文章只能有一个作者,而一个作者可能会写多篇文章,因此这是一对多的关联关系created_time(创建时间):数据类型是DateTimeField,表示时间字段excerpt(文章摘要):数据类型是CharField,允许最大长度max_length=200,django内部规定CharField字段为必填字段,但是有些文章不需要摘要,这里我们用blank=True,表示参数可以为空值。好啦,基本的模型编写完成~
总结
本章学习了Django的基本设计模型。我们了解了数据表内部是什么样的结构。下一章我们开始将数据迁移以及创建django后台管理
如果有疑问可以私聊或者在下方留言,我会及时解决与答复。
关注公众号,获取最新文章
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END