Django blog
来源:互联网 发布:在线制作淘宝店招 编辑:程序博客网 时间:2024/05/22 15:26
设计博客的数据库表结构
把写好的文章永久地保存在数据库里,当用户访问我们的博客时,Django就去数据库里把这些数据取出来展现给用户。
博客的文章应该含有标题、正文、作者、发表时间等数据
一个更加现代化的博客文章还希望它有分类、标签、评论等
博客初级版本主要包含博客文章,文章会有分类以及标签。一篇文章只能有一个分类,但可以打上很多标签。
数据库存储的数据其实就是表格的形式,例如存储博客文章的数据库表长这个样子:
文章 id
标题
正文
发表时间
分类
标签
1
title 1
text 1
2016-12-23
Django
Django 学习
2
title 2
text 2
2016-12-24
Django
Django 学习
3
title 3
text 3
2016-12-26
Python
Python 学习
其中文章 ID是一个数字,唯一对应着一篇文章。
这 3篇文章的分类和标签都是相同的,这会产生很多重复数据,当数据量很大时就浪费了存储空间。
不同的文章可能它们对应的分类或者标签是相同的,所以我们把分类和标签提取出来,做成单独的数据库表,再把文章和分类、标签关联起来。下面分别是分类和标签的数据库表:
分类 id
分类名
1
Django
2
Python
标签 id
标签名
1
Django 学习
2
Python 学习
编写博客模型代码
以上是自然语言描述的表格,数据库有一套规定的语法来生成上述的表结构,把数据存进去。
Django 把数据库的语法转换成了 Python的语法形式,只要写Python代码,Django会把 Python代码翻译成对应的数据库操作语言。专业的说,Django为我们提供了一套 ORM(Object Relational Mapping)系统。
编写 3个表格:文章(Post)、分类(Category)以及标签(Tag)对应的 Python 类。
模型的代码通常写在相关应用的 models.py文件里。
Django 内置全部类型文档:https://docs.djangoproject.com/en/1.10/ref/models/fields/#field-types
数据库关系文档:https://docs.djangoproject.com/en/1.10/topics/db/models/#relationships
from django.db import modelsfrom django.contrib.auth.model import User# Create your models here.class Category(models.Model): """ Django 要求模型必须继承 models.Model 类 Category 只需一个简单分类名 name 即可 CharField 指定分类名 name 的数据类型,CharField是字符型 max_length 参数指定最大长度 """ name = models.CharField(max_length=100)class Tag(models.Model): name = models.CharField(max_length=100)class Post(models.Model): # 文章标题 title = models.CharField(max_length=70) # 文章正文 # Textfield 字符型存储大段文本 body = models.TextField() # 文章创建时间和最后一次更改时间 # DateTimeField 存储时间数据类型 created_time = models.DateTimeField() modified_time = models.DateTimeField() # 文章摘要 # CharField 为空报错(blank = True允许空值 excerpt = models.CharField(max_length=200, blank=True) # 分类与标签 # 一篇文章对应一个分类,一个分类对应多篇文章 # 使用ForeignKey 一对多关系 # 一篇文章对应多个标签,一个标签对应多篇文章 # ManyToManyField 多对多关系 category = models.ForeignKey(Category) tags = models.ManyToMany(Tag, blank=True) # 作者 # User 是从 django.contrib.auth.model 导入的 # django.contrib.auth:Django内置应用,处理网站用户注册、登陆等流程 # User 是 Django 写好的用户模型 author = models.ForeignKey(User)
- Django&&blog
- Django blog
- Django blog
- Django blog
- Django blog
- Django blog
- Django blog
- Django blog
- Django 搭建blog
- django实例教程–blog
- django-简单blog
- Django 开源Blog框架
- django 快速搭建blog
- django 快速搭建blog
- django搭建blog
- django 快速搭建blog
- django 快速搭建blog
- django 快速搭建blog
- 笔记:数据结构研究内容
- mysql innodb mvcc理解
- Java常用类库知识要点总结
- RabbitMQ注解方式配置说明
- Unity 连接操作数据库
- Django blog
- Maven基础总结
- HDU 2095 find your present (2)
- python 元素移除
- 生活小记9
- 日期格式化
- 二维数组打印
- selemium页面常见问题的处理
- 安装python paramiko包