Django开发博客系统(01-前言与需求分析)

原本是跟着视频学,无奈发现视频中用到的资源找不到,于是自己买了本书来进行学习,贴上JD链接.《Django企业开发实战》

我的开发环境是win10+python3.8+django3.0.4,而书上是在linux环境下进行开发的,= =(汗),先这样学下去吧,毕竟面向百度编程.写博客也是为了督促一下自己,毕竟在家里宅着容易学着学着就玩手机去了..

书前面还有一些入门知识,这里我就直接跳到做项目的部分了.

目标是开发一个博客系统,

需求分析:

简单来说,博客分为两个部分:读者访问部分(用户端)和作者创作部分(作者端).

用户端部分

l  网站需要对SEO(搜索引擎优化)友好,并给搜索引擎提供XML格式的sitemap文件.(我的知识盲区)何为SEO?

l  提供博客搜索功能,搜索范围限定在标题,分类和标签上.

l  能够根据某个分类查看所有关于这一分类的文章,分类没有层级的关系,只有一级分类.一篇文章只能属于一个分类.

l  访问首页时,需要能看到由新到旧的文章列表.作者可以设置指定某篇文章,也可以同时置顶多篇文章.多篇文章置顶时,排序规则为从新到旧.

l  列表分页.对于首页,频道页和标签页,都需要提供分页需求,每页展示10篇文章.列表页展示文章时,需要展示摘抄,默认为文章的前140个字.

l  能通过RSS阅读器订阅博主的文章.(又是我的知识盲区)什么是RSS?

l  能对文章进行评论,不需要支持盖楼模式,只要在文章页面展示评论,在页面的侧边栏也需要能展示最新的评论.

l  能够配置友链,在一个页面中展示即可,不需要分类.但是需要能够制定某个友链的权重,权重高者在前面展示.

作者端需求

l  博客后台需要登录才能进去.目前没有多用户需求,以后考虑扩展.

l  能够创建分类和标签,一篇文章只能属于一个分类,但是可以属于多个标签.标签和分类都没有层级关系.

l  作者在后台需要设置文章标题,摘要(如果为空则展示文章前140个字),正文,分类和标签.不需要实时保存.文章格式默认为Markdown.考虑增加可视化编辑器.

l  增加文章配图时,图片需要增加水印,其内容为网站网址(这个功能做成可选的吧)

l  导航只是分类,默认展示在顶部.每篇文章都要有浏览路径,比如首页>文章分类>正文.对于导航的顺序,作者可以设置权重,权重高者在前.顶部最多展示6个分类,多余的分类展示到底部.

l  作者更新后,读者能够收到通知(搁置)

梳理一下我们的博客需要的功能点:

l  后端渲染页面,对SEO友好;

l  提供sitemap.xml文件,输出所有文章;

l  搜索功能,能够针对标题,分类和标签进行搜索;

l  根据分类和标签查看文章列表;

l  文章可以设置置顶(多篇);

l  列表页需要展示文章摘要,140字以内,可以作者填写,或者自动展示文章前的140个字;

l  列表页需要分页展示,每页10条;

l  提供RSS页面,根据RSS2.0规范输出内容;

l  文章页面支持评论,不需要盖楼,侧边栏能展示最新评论

l  评论模块需要验证码功能

l  后台能够配置友链,所有友链在一个页面中展示;

l  用户可以通过用户名和密码登录后台,然后才能创建文章;

l  需要考虑扩展多用户,多用户时需要对分类,标签,文章,友链的操作权限进行隔离

l  分类增删改查--字段:id,名称,创建时间,创建人,是否置顶,权重.

l  标签增删改查--字段:id,名称,创建时间,创建人.

l  文章增删改查--字段:id,标题,摘要,正文,所属分类,所属标签,状态(发布,草稿或删除),创建时间和创建人.

l  侧边模块用来展示侧边栏需要的数据,字段--id,类型,标题,内容,创建时期和创建人.

实体关系图(画实体图用的网站)

思维导图得到的结果

原文地址:https://www.cnblogs.com/ylnx-tl/p/12601808.html

时间: 2024-07-29 22:33:15

Django开发博客系统(01-前言与需求分析)的相关文章

Django开发博客系统(04-常用字段与属性)

Django models中常用的字段类型 数值型 这些类型都是数值相关的. l  AutoField int(11). 自增主键,Django Model默认提供,可以被重写.完整定义是 id = models.AutoField(primary_key=True) l  BooleanFueld tinyint(1). 布尔类型字段,一般用于记录状态标记. l  DecimalField decimal. 开发对数据精度要求高的业务时考虑使用,比如做支付相关,金融相关.定义时需要指定精确到多

Django开发博客系统(08-路由配置与views编写)

我们需要的页面: l  博客首页 l  博文详情页 l  分类列表页 l  标签列表页 l  友链展示页 但实际上,博客首页,分类列表页和标签列表页,本质上都是文章列表页,只有一些信息有差别.那么View大概就有三类: l  列表页: 根据不同的查询条件分别展示博客首页,分类列表页和标签列表页 l  博文详情页: 展示博文详情页 l  友链展示页: 展示所有友情链接 书上使用的环境是django1.11.1,而我使用的是3.0.4,所以路由我使用path来写,并且把路由分散开来写,让代码分工能明

Django开发博客系统(07-根据需求定制管理后台)

运行系统尝试添加用户并添加数据,出现的效果 可以看到当前登录的用户虽然是DOCTOR,但依然可以看到其他用户的文章,而且过滤器上也展示了非当前用户创建的分类,显然这是一个需要我们解决的问题. 首先解决右侧过滤器的功能,这时需要自定义过滤器,这里贴上文档中的说明 接下来我们就来编写自定义过滤器的代码: 1 class CategoryOwnerFilter(admin.SimpleListFilter): 2 """自定义过滤器只展示当前用户分类""&quo

Django开发博客系统(11-使用xadmin)

这段时间进行了前端页面的美化,实现了搜索功能与评论功能,以及配置了rss和sitemap,不过这些东西后期可能还会进行大改,所以暂时不准备讲,可能完成之后会一起说一下...吧. 另外这里贴上我的源码,不过还没有完成,有兴趣可以去看看. 今天将后台的admin替换为了xadmin,xadmin是国人创建的一个开源项目,作者github,这个项目简单来说可以完全无痛地替换admin,同时增加很多有用的功能,界面也是基于Bootstrap,相较自带的更美观. 先来看看最终完成的效果图吧 接下来就进行x

Django开发博客系统(05-QuerySet的使用)

在Model层中,Django通过objects属性来提供数据操作的接口, 比如我们想要查询所有文章的数据,只需要 Post.objects.all() 他会返回一个QuerySet对象,当我们需要用到它时,它会去db中获取数据,注意是用到的时候才会去查,而不是定义的时候去查,原因是QuerySet要支持链式操作,如果每次执行都要查询数据库的话,会影响性能,假设我要查询所有文章中状态为正常的文章,有如下代码. posts = Post.objects.all() available_posts

Django开发博客(基础篇)

Django开发博客(基础篇)http://www.itmin.cn/archives/918

Django开发博客- 部署

安装Git Git是一个被大量程序员使用的”版本控制系统”.此软件可以跟踪任何时间文件的改变,这样你以后可以随时召回某个特定版本. windows系统下面可以下载git-scm安装.除了第5步”Adjusting your PATH environment”, 需要选择”Run Git and associated Unix tools from the Windows command-line”(底部的选项).除此之外,默认值都没有问题. Linux系统的安装使用包管理器安装 123 sudo

Django开发博客 入门篇

Django是神马? Django是一个开源免费的Web框架,使用Python编写.能够让你快速写出一个Web应用, 因为它包含了绝大部分的组件,比如认证,表单,ORM,Session,安全,文件上传,页面模板等,避免了重复造轮子. 官方网站:https://www.djangoproject.com/ 笔者写这篇教程的时候,最新版本是1.9 安装Django1.9 安装python虚拟环境 为了开发应用的时候使用单独的环境,最好是安装virtual environment, 这样有很好的独立性

Django开发博客- 三部曲

其实在django中实现一个功能只需要三个步骤即可,这里我姑且叫它三部曲. 这三部曲就是: 定义urls映射 定义views 定义templates 什么是URL? URL就算一个WEB地址,你在浏览器输入这个地址,然后浏览器返回相应的网页给你. 比如http://djangogirls.com是一个URL,而127.0.0.1:8000同样也是个URL,默认就是http协议的. Django中的URL工作原理 我们打开mysite/urls.py文件,会发现类似下面这样: 1234567891