管理信息系统 课程设计

Posted qianshu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了管理信息系统 课程设计相关的知识,希望对你有一定的参考价值。

管理信息系统

 

一、     系统概要说明

该网站是由Python+Flask+mysql的web建设技术开发的。本系统是一个实用的个人博客网站,集博客、评论、于一身。未注册的用户只可以浏览文章,注册成为该系统的用户,可以发表文章、评论,上传头像,修改密码,点赞收藏。布局简单,样式简介。

 

二、     网站结构设计

网站统一布局:头部导航条、底部图片导航、中间主体内容区域

技术分享图片

用户未登录时,头部导航为首页、登录、注册、问答和组合搜索,用户登录后,头部导航为首页、更改信息、个人中心、退出、问答和组合搜索。

中间主体内容区域,是不同html的组合,点击导航上的各个功能,进入不同的html。首页通过文章的标题,可进入文章详情页,进行留言、点赞和收藏。

 

三、     模块详细设计

  1. 注册

js文件中,onclick函数return True时才提交表单,return False时不提交表单。在页面当中,<form>中设置 action和method="post",<input> 中设置 name

在主py文件中,设置方法,获取form中的数据,判断用户名是否存在,不存在则存到数据库中,再重新定向登录页;存在则提示错误信息。

技术分享图片技术分享图片 

  1. 登录

在登录页面,在form设置action和method=“post”,在input设置用户名密码

在主py文件:@app.route设置login methods,GET的方法得到页面,POST发回读取表单数据,查询数据库,用户名密码是否正确,正确则跳转到首页;不正确则提示错误。

技术分享图片技术分享图片 

  1. 上传头像及修改密码

在页面form表单中,需要指定`encotype=‘multipart/form-data‘`才能上传文件。后台代码中查询到该用户,获取文件所在目录的完整路径,其中 os.path.dirname(__file__)函数用于取出主文件的位置,在用os.path.join()函数将该位置和后面指定的‘static/uploads‘ 字符串连接一起,获取图像路径。 

技术分享图片 

定义修改密码的函数,查找该用户进行修改从而修改密码

技术分享图片 

  1. 发布

编写要求登录的装饰器,要求登录才能发布文章,未登录则跳转至登录页面。

在发布页面,在form设置action和method,在input设置用户id,分类id,文章标题及内容等等,通过主py文件session.add添加到数据库,保存数据库,重新定向到数据库。

 技术分享图片

  1. 评论

在主py文件,定义评论的视图函数,读取前端页面数据,保存到数据库中

技术分享图片 

  1. 首页文章列表页及问答详情页

首页列表显示全部问答:将数据库查询结果传递到前端页面 question.query.all(),前端页面循环显示整个列表,按照时间排序全部问答

技术分享图片

问答详情页:包含该问答全部信息,推荐文章,评论区,评论区列表,点赞收藏等

技术分享图片

四、     数据库设计

SQLAlchemy 是一个 Python 包,其最底层包装了对数据库进入操作的统一接口,然后在最上层提供了对象关系映射(ORM)的实现。Python的 ORM框架SQLAlchemy,可以让我们操作数据库跟操作对象一样方便。

该博客系统使用了Navicat for MySQL 的软件,在mysql创建数据库mis1515。

技术分享图片技术分享图片 

建立mysql和app的连接,在数据库配置信息config.py中加入以下配置。

在config.py中加入以下两项配置:

SQLALCHEMY_DATABASE_URI= = ‘mysql+pymysql://root:[email protected]:3306/mis1515?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及其评论内容

 技术分享图片

问答表:字段包括标题,内容,发表的用户,文章的分类名,浏览数,点赞数

 技术分享图片

用户表:字段为用户名,密码,评论次数,用户头像

 技术分享图片

五、     系统实现的关键算法与数据结构

查找对象时,通过Flask-SQLAlchemy提供的一个query属性,当你通过model类的query属性,你可以得到一个数据库表的查询结果集,再使用filter对结果进行过滤。这个查找大量运用在这个系统,包括搜索功能。

user = User.query.filter(User.id == user_id).first()

query = Question.query.filter( or_(
        Question.title.contains(qu),
        Question.detail.contains(qu),
    ) .order_by(‘-creat_time‘).all()

 

加密算法:将密码明文转化为hash码

from werkzeug.security import generate_password_hash, check_password_hash

    @property

    def password(self):  #外部使用

        return self._password

    @password.setter

    def password(self, row_password):

        self._password = generate_password_hash(row_password)

    def check_password(self, row_password):

        result = check_password_hash(self._password,row_password)

        return result

 

六、     成品展示

 技术分享图片

首页页面可以看到不同用户发表的简略问答,右边可以根据你选择的分类而显示该类别的文章

 技术分享图片

注册页面,输入账号和密码,符合条件即可注册跳转至登录页面

技术分享图片

登录页面,输入正确的账号和密码即可登录成功,并跳转至首页

技术分享图片

用户可以上传喜欢的头像和更改密码

 技术分享图片

个人中心页面可以看到个人的问答、评论、收藏及信息

技术分享图片

发布问答页面,用户可以发布自己问题或文字,显示在首页的文章列表中。

技术分享图片

评论页,用户点击文章进入详情页,即可点赞收藏及评论,也可以看到其他用户的评论内容。




以上是关于管理信息系统 课程设计的主要内容,如果未能解决你的问题,请参考以下文章

c语言课程设计 学生信息管理系统模拟

Python课程设计之学生信息管理系统

java课程设计(学生信息管理系统)

管理信息系统 课程设计

管理信息系统 课程设计

学生信息管理系统C语言编程