- 系统概要说明
该网站是由Python+Flask+MysqL的web建设技术开发的。本系统是一个论坛网站,集个人、评论于一身。未注册的用户只可以浏览文章,注册成为该系统的用户,可以发表文章、评论,上传头像,修改密码,点赞收藏,并且对此作样式修改。
系统目标:对系统有一个整体的认识,包括每个功能实现的流程,产生的数据,技术基础等
进行概要设计:
1、设计系统的总体架构
2、利用顺序图描述基于该架构下各个类如何协作实现各个待开发的功能
3、整理总结出数据字典
4、对每一个功能进行检查并且改善
2 . 网站结构设计
主体是首页,链接各个功能页面,每个功能都有相应的html页面。
3. 模块详细设计
注册
js文件:在页面当中,<form>中设置 action和method="post",<input> 中设置 name
在主py文件中,设置方法,将username和password存入数据库
登陆
判断在主py文件:@app.route设置login methods,GET的方法得到页面,POST发回读取表单数据,username和password是否对应数据库中的,如果符合就允许进入;不符合的话,就提示错误不给进入。
提问
在发布页面,在form设置action和method,通过主py文件session.add将提问中的title、detail、author_id、cf存入到数据库中的question表
组合搜索
根据对应文章的名字title与文章内容detail传值来获取相关搜索的文章
更换头像
在指定的文件夹下面将相对应的文件传入数据库再传递到前端(uploads/f.filename)
更换密码
先获得原来user.id的password值,然后再将一个新的password提交上去,更换数据库里面password的值
4. 数据库设计
该博客系统使用了Navicat for MySQL 的软件,在mysql创建数据库。
建立mysql和app的连接,在数据库配置信息config.py中加入以下配置。
在config.py中加入以下两项配置:
SQLALCHEMY_DATABASE_URI= = 'mysql+pymysql://root:xxxxx@localhost:3306/mis?charset=utf8'
SQLALCHEMY_TRACK_MODIFICATIONS = False
在主py(mis1515.py)中加入
import config
app.config.from_object('config')
db = SQLAlchemy(app)
测试是否连接成功 db.create_all()
各个表的数据类型
收藏表:用户可以收藏喜欢的文章,字段包括该收藏的文章id,用户id
评论表:字段包括评论的用户id,问题的id及其评论内容
问答表:字段包括标题,内容,发表的用户,文章的分类名,浏览数,点赞数
用户表:字段为用户名,密码,评论次数,用户头像
- 1. 系统实现的关键算法与数据结构
1.1加密算法
数据库中直接存放明文密码是很危险的,Werkzeug库中的security能够方便的实现散列密码的计算
security库中 generate_password_hash(password,method...)函数将原始密码作为输入,以字符串形式输出密码的散列值。check_password_hash(hash,password)函数检查给出的hash密码与明文密码是否相符;
1.2排序算法
本网站分别根据时间('-creat_time')与点击数('-click')通过迭代进行排序。
1.3 Array-数组
二位数组是一种最简单的数据结构,一张数据库表就可以看成是一个二维数组
这个二维数组就代表一张有行和列的表结构:
1、每一行代表一个对象。
2、每一行所有列代表一个对象的所有属性。
3、每一列固定存储某一种类型的数据(如:integer、string、date…)。
尽管,二维数组用于存储表数据非常好,但是当你需要从数组中根据某个条件查询数据时性能无法接受。
成品展示
首页
注册
登陆
问答
热门推荐
分类
帖子在首页布局
详情 点赞 收藏
推荐文章
用户评论
更改头像 更改密码
搜索组合
个人信息界面
个人信息统计
资料信息来源于:博客园