博客系统实现

场景:

1.注册/登录页面

2.首页/博客列表页

3.博客详情页

4.文章发表页

注册场景

1.表单资源:(静态资源) /register.html(user.css,commom.css)

用户表:

字段:用户名(username,不能重复),昵称(nickname,可重复),头像地址(avatar),git地址(git),密码(password)

需要用户填写五个内容: 用户名(不能重复),昵称(可重复),头像地址,git地址,密码

2.验证资源:(动态资源)/do-register

注册过程:

读取用户提交的信息——将信息插入到数据库中(将密码做hash后保存)——注册成功——把刚注册的用户放入到session中(注册成功,视为登陆成功)——显示注册成功,后面跟个a标签引导用户跳转到首页·

(注册失败——分析原因——用户原因——显示失败,提示用户错误原因——引导回到注册页面重新注册)

如果是系统原因导致的注册失败,直接抛异常

登录场景

1.表单资源:(静态资源)login.html(user.css,commom.css)

2.需要用户填写两个内容: 用户名、密码

登录过程:

读取用户提交的信息——从数据库中查询该用户,如果用户为空(或者密码错误)——显示登录失败,引导用户跳回登录页面,重新登录

读取用户提交的信息——从数据库中查询该用户,如果用户不为空,并且密码正确——把登录的用户放入session中——显示登录成功,后面跟个a标签引导用户跳转到首页·

首页

文章表:

字段:文章id(aid),作者id(uid),文章标题(title),文章内容(content),文章发表日期(published_at),文章分类(type)

需要实现的主要内容:

页面展示(模板技术)

1.获取当前登录用户信息

从session中获取用户信息,如果用户没有登录,则引导用户去登录

2.当前登录用户的文章列表(按倒序排列)

3.获取当前用户发表文章总数

4.获取当前用户发表文章类别总数

使用模板技术最终生成正文

文章详情页

需要实现的主要内容:

1.读取文章id(没有输入aid,或者aid不是数字,报400错误,提示用户输入正确的aid)

2.用户必须处于登录状态(未登录提示回到登录页面进行登录)

3.查询详情页的所有内容(使用模板技术生成)

1)根据aid查询文章信息

  aid对应的文章不存在,报404,显示aid对应的文章不存在

2)查询文章总数

3)查询文章类型总数

文章发表页

点击写博客进入

需要实现的主要内容:

1.表单资源页(edit.html)

需要判断用户是否登录,登录后才能使用

2.保存发布的内容(save-article)

需要判断用户是否登录,登录后才能使用

向数据库中插入这条文章信息

重定向到文章详情页

注销

删除session中这条用户信息

重定向到登录页面

博客系统的测试用例:

备注:为了写起来更清晰,分析更具体,使用XMind工具编写测试用例,这里放置截图

BUG:

登录/注册:

  1. 在上一个用户登录没有退出的情况下,用URL进入注册/登录页面,点击主页和写博客直接进入上一个登录者的首页和写博客页面,正常情况下,应显示跳转到“请先登录再使用,点击此处进行登录”这个页面。
  2. 注册过程中,什么也不输入,点击注册也注册成功了
  3. 相应的,登陆时,直接点击登录,显示登录成功
  4. 在多次密码输入错误的情况下,没有机制防止暴力破解
  5. 可以多端同时登录一个账号

首页:

  1. 文章列表页的文章按发表顺序倒叙显示,实际结果是如果日期不同,会按照倒序显示,如果是同一天发表的,则按照正序排列了,实际上,按照需求,全是按照倒序排列的
  2. 文章在文章列表显示时,没有按照正确的格式显示,将markdown格式也一并显示进去,比如“#”,不太美观

博客编辑页面:

  1. 点击功能区的图标弹出的弹窗清晰度较差
  2. 不填写任何内容时,发表成功,预期结果是发表失败
  3. 不能删除自己写的博客
  4. 博客文章需求是需要分类的,但是编辑博客页面却没有涉及分类,也就是说文章分类只有一种,分类总数失去了意义

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python Flask是一个轻量级的Web框架,可以用来构建Web应用程序。下面是使用Python Flask实现博客系统的一般步骤: 1. 安装Flask:首先,你需要安装Flask库。可以使用pip命令来安装:`pip install flask` 2. 创建Flask应用:在Python文件中导入Flask库,并创建一个Flask应用对象。例如: ```python from flask import Flask app = Flask(__name__) ``` 3. 定义路由和视图函数:使用装饰器来定义路由和对应的视图函数。路由指定了URL路径,视图函数负责处理该路径的请求并返回响应。例如: ```python @app.route('/') def index(): return 'Hello, World!' ``` 4. 创建数据库模型:使用数据库来存储博客系统的数据。可以选择使用SQLAlchemy等ORM工具来简化数据库操作。 5. 创建模板:使用模板引擎(如Jinja2)来渲染动态内容。创建HTML模板文件,将动态数据传递给模板进行渲染。 6. 实现用户认证和授权:为博客系统添加用户认证和授权功能,例如注册、登录、权限管理等。 7. 实现博客功能:包括创建博客、编辑博客、删除博客、查看博客列表等功能。 8. 实现评论功能:为博客添加评论功能,允许用户发表评论、回复评论等。 9. 实现其他功能:根据需求,可以添加其他功能,如标签管理、分类管理、搜索功能等。 10. 部署应用:将博客系统部署到服务器上,可以选择使用Nginx+uWSGI等方式进行部署。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值