Django 快速搭建博客 第三节(数据库表设计)
2017-11-08 23:50
417 查看
上一节我们已经能在pycharm下新建了blog app了, 这个时候,我们需要设计一下博客的数据库设计
关于数据库表的设计,作为新手的我们并不需要要求懂太多稍微的懂一些也就可以了,毕竟数据库也是需要有一定的功底的,
这里我们依据博客学习,将博客表设计为三份:文章表,标签表,分类表
结构类似于这样子:
图片也是截的,比较丑,这里我按照我个人的理解,说一下:
每一篇文章都有对应的文章id,正文,发表时间,分类,标签
这很合理,我们能理解,但是!每篇文章都有些分类,标签,这样会产生重复的数据,造成资源的浪费,所以我们把分类与标签提取出来,单独做成表,再跟文章相关联起来。这就有了图二的内容。
2 接下来我们开始在blog/models下进行数据库表的创建(注意:因为django使用的orm系统(Object Relational Mapping ))
贴上这里的三个表结构:
以后有机会会改善代码的显示界面,如果支持的情况下,我们这里再贴上代码的图片
3 同步数据库:
如果想知道django是如何操作数据库的,可以使用命令:
这里再贴一下使用数据库的命令:
python manage.py makemigrations
python manage.py migrate
当我们看到
python manage.py sqlmigrate blog 0001
django命令行知识:
1 同步数据库: python manage.py makemigrations
python manage.py migrate
2 查看django如何操作数据库:python manage.py sqlmigrate blog 0001
以上就是建数据库表的设计。
关于数据库表的设计,作为新手的我们并不需要要求懂太多稍微的懂一些也就可以了,毕竟数据库也是需要有一定的功底的,
这里我们依据博客学习,将博客表设计为三份:文章表,标签表,分类表
结构类似于这样子:
图片也是截的,比较丑,这里我按照我个人的理解,说一下:
每一篇文章都有对应的文章id,正文,发表时间,分类,标签
这很合理,我们能理解,但是!每篇文章都有些分类,标签,这样会产生重复的数据,造成资源的浪费,所以我们把分类与标签提取出来,单独做成表,再跟文章相关联起来。这就有了图二的内容。
2 接下来我们开始在blog/models下进行数据库表的创建(注意:因为django使用的orm系统(Object Relational Mapping ))
贴上这里的三个表结构:
from django.db import models # 专门用于处理网站用户的注册、登录等流程,User 是 Django 为我们已经写好的用户模型。 from django.contrib.auth.models import User # Create your models here. # 分类数据库表 class Category(models.Model): name = models.CharField(max_length=100) def __str__(self): return self.name # 标签数据库 class Tag(models.Model): name = models.CharField(max_length=100) def __str__(self): return self.name # 文章数据库 class Post(models.Model): ''' 文章数据库包含字段:标题title 正文body 创建时间created_time 修改时间modified_time 摘要excerpt 分类category 标签tag 作者author ''' title = models.CharField(max_length=100) body = models.TextField() created_time = models.DateTimeField() modified_time = models.DateTimeField() # blank 为true表示参数可以为空值za excerpt = models.CharField(max_length=200,blank=True) # ForeignKey,即一对多的关联关系(一个分类下可以有多篇文章) category = models.ForeignKey(Category) # 而对于标签来说,一篇文章可以有多个标签,同一个标签下也可能有多篇文章, # 所以我们使用 ManyToManyField,表明这是多对多的关联关系。文章可以没有标签,所以blank可以为true tag = models.ForeignKey(Tag,blank=True) # 文章作者,这里 User 是从 django.contrib.auth.models 导入的。 # django.contrib.auth 是 Django 内置的应用,专门用于处理网站用户的注册、登录等流程, # User 是 Django 为我们已经写好的用户模型。 # 这里我们通过 ForeignKey 把文章和 User 关联了起来。 # 因为我们规定一篇文章只能有一个作者,而一个作者可能会写多篇文章,因此这是一对多的关联关系,和 Category 类似 author = models.ForeignKey(User) def __str__(self): return self.title
以后有机会会改善代码的显示界面,如果支持的情况下,我们这里再贴上代码的图片
3 同步数据库:
如果想知道django是如何操作数据库的,可以使用命令:
这里再贴一下使用数据库的命令:
python manage.py makemigrations
python manage.py migrate
当我们看到
Applying blog.0001_initial ....ok就说明同步数据库成功了。
python manage.py sqlmigrate blog 0001
django命令行知识:
1 同步数据库: python manage.py makemigrations
python manage.py migrate
2 查看django如何操作数据库:python manage.py sqlmigrate blog 0001
以上就是建数据库表的设计。
相关文章推荐
- Django 快速搭建博客 第七节(文章详情页,markdown语法)
- Django 快速搭建博客 第九节(评论功能的实现)
- Django+python+eclipse 快速搭建博客blog .
- Django 快速搭建博客 第十一节(文章阅读量统计,自动生成文章摘要)
- Django 快速搭建博客 第八节(自定义模板,归档,分类页面)
- Django 快速搭建博客 第四节(hello world视图)
- 使用Django快速搭建简易博客
- Django 快速搭建博客 第五节(hello world模板视图)
- Django 快速搭建博客 第六节
- [知了堂学习笔记]_EasyUi快速搭建一个权限管理的模块(1)--RBAC概述和数据库设计
- django1.6 博客的快速搭建second blog v2
- django搭建个人博客02,表设计(models)
- Django+python+eclipse 快速搭建博客blog
- Django 快速搭建个人博客(终结版)
- django搭建个人博客02,表设计(models)
- Django1.11.1+python3.5+Pycharm 快速搭建博客blog
- Django+python+eclipse 快速搭建博客blog
- Django 快速搭建博客 第十一节(文章阅读量统计,自动生成文章摘要)
- Django 快速搭建博客 第十节(修复首页,阅读量的数据)
- 从简到繁——SSM个人博客搭建完全记录【1】开发环境搭建和数据库表设计