该网站是由Python+Flask+MysqL的web建设技术开发的。本系统是一个论坛网站,集我的、评论于一身。未注册的用户只能够浏览文章,注册成为该系统的用户,能够发表文章、评论,上传头像,修改密码,点赞收藏,而且对此做样式修改。html
系统目标:对系统有一个总体的认识,包括每一个功能实现的流程,产生的数据,技术基础等前端
进行概要设计:mysql
一、设计系统的整体架构web
二、利用顺序图描述基于该架构下各个类如何协做实现各个待开发的功能算法
三、整理总结出数据字典sql
四、对每个功能进行检查而且改善数据库
2 . 网站结构设计数组
主体是首页,连接各个功能页面,每一个功能都有相应的html页面。session
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加密算法
数据库中直接存放明文密码是很危险的,Werkzeug库中的security可以方便的实现散列密码的计算
security库中 generate_password_hash(password,method...)函数将原始密码做为输入,以字符串形式输出密码的散列值。check_password_hash(hash,password)函数检查给出的hash密码与明文密码是否相符;
1.2排序算法
本网站分别根据时间('-creat_time')与点击数('-click')经过迭代进行排序。
二位数组是一种最简单的数据结构,一张数据库表就能够当作是一个二维数组
这个二维数组就表明一张有行和列的表结构:
一、每一行表明一个对象。
二、每一行全部列表明一个对象的全部属性。
三、每一列固定存储某一种类型的数据(如:integer、string、date…)。
尽管,二维数组用于存储表数据很是好,可是当你须要从数组中根据某个条件查询数据时性能没法接受。
成品展现
首页
注册
登录
问答
热门推荐
分类
帖子在首页布局
详情 点赞 收藏
推荐文章
用户评论
更改头像 更改密码
搜索组合
我的信息界面
我的信息统计
资料信息来源于:博客园