python 课程设计 信息系统_管理信息系统 课程设计

一、项目选择

继续沿用Python+Flask+MysqL的web建设技术,开发一个网站

网站主题根据个人兴趣与特长自由选择

此项目属于个人项目,每个同学独立完成,和其他同学不一样

二、项目要求

整个网站风格统一,布局合理,尽量美观。

作品必须完成:网站父模板统一布局:头部导航条、底部图片导航、中间主显示区域布局

注册、登录、注销

发布、列表显示

详情页

评论、列表显示

个人中心

搜索,条件组合搜索

文章分类、显示

点赞、收藏

修改密码、头像、上传头像

我的发布、点赞、收藏、评论

高级搜索

热门文章、推荐文章

三、提交材料

整个python项目文件夹

一项目文档,包括:系统概要说明

网站结构设计

模块详细设计

数据库设计

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

成品展示

四、材料提交方式及日期

每人提交一个文件夹,以学号姓名命名

个人文件夹里包含三述的材料:

整个python项目文件夹

一项目文档

请在2018/06/16 日期之前提交给学委

学委收齐后,整理刻录一张光盘交给老师。空白光盘可找老师领取

建一个班级文件夹,里面放一个一个同学的文件夹,都不要压缩

一、系统概要说明

这是一个在本地数据库进行增加用户和用户的问答,从而对用户信息的遍历和对用户发表的问答的评论,以及对问答的一些点赞和收藏功能,在首页进行文章的遍历等。

二、网站结构设计

一级目录有静态文件夹(static),html存放的文件夹(templates)以及主python文件以及config配置文件。static中又分别有三个文件夹,一个是css文件夹,用来布局美化;一个是js文件夹,用来完成一些页面的特效功能;一个是uploads文件夹,用来储存用户的头像图片。在templates中存放了所有页面的HTML,包含模板以及其余所有页面的html。

三、模块详细设计

客户端--注册请求—查询数据库—返回页面(提示成功)—跳转登录页面

客户端—登录请求—查询数据库—返回页面(提示成功)—跳转首页

客户端—发布问答请求—存取数据进数据库—返回页面—跳转首页

客户端—个人信息请求—查询数据库—返回从数据库查询的信息

客户端—个人信息请求—进行数据库的增删查改—返回改后的数据

客户端—问答评论请求—将评论的内容存入数据库—返回评论用户以及评论内容

客户端—点赞收藏请求—存入数据库—将加一后的数据返回页面

客户端—用户头像上传请求—存入用户表—返回用户图像

客户端—首页遍历问答请求—查询数据库—返回所有问答

四、数据库设计

本系统运行所需的数据库需要utf8格式的,数据库里需要有五张表,一张user(用户)表,一张question(问答)表,一张comment(评论)表,一张cf(分类)表,一张collection(收藏)表。

User表:用户ID,username,password,icon,其中password需要加密处理。

Question表:问答id,title,detail,creat_time,用户id,cf。look,click。

Comment表:评论id,用户id,问答id,creat_time,detail

Cf表:分类id,分类name

Collection表:收藏id,问答id,用户id。

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

关键算法有登录,注册,发布问答,发布评论

以下是登录部分代码:

#登陆@app.route('/login/', methods=['GET', 'POST'])

deflogin():

ifrequest.method

== 'GET':

returnrender_template('login.html')

else:

username = request.form.get('username')

password = request.form.get('password')

user =

User.query.filter(User.username == username).first()

ifuser:

ifuser.check_password(password):

session['username'] = user.username

session['user_id'] = user.id

session.permanent = True#重新定位到首页returnredirect(url_for('index'))

else:

#重新定位到注册returnredirect(url_for('login'))

else:

returnredirect(url_for('login'))

代码解析:定义一个login方法,如果请求的方式是“GET”那么返回到login.html,否则,从数据库获取username和password。如果获取的username,password与数据库的一致,那么返回到首页,否则返回注册页。

以下是注册部分代码:

@app.route('/regist/', methods=['GET', 'POST'])

defregist():

ifrequest.method == 'GET':

#打开注册页的模板returnrender_template('regist.html')

else:  #收到用户上传的信息username = request.form.get('username')

password = request.form.get('password')

user = User.query.filter(User.username == username).first()

ifuser:

return'error:user exitst'else:

user = User(username=username, password=password)

db.session.add(user)  #加入数据库db.session.commit()

returnredirect(url_for('login'))

代码解析:定义一个regist方法,如果请求的方式是“GET”那么返回到regist.html,否则获取用户上传的信息。如果获取的user已存在数据库,则返回错误提示“user exitst”,否则将user的username,password存入数据库的user表,然后转到login.html页面。

以下是发布问答部分代码:

@app.route('/question', methods=['GET', 'POST'])

@loginFirst

defquestion():

ifrequest.method == 'GET':

cf = Cf.query.all()

returnrender_template('question.html', cf=cf)

else:

title = request.form.get('title')

detail = request.form.get('detail')

author_id = request.form.get('author_id')

cf = request.form.get('cf')

question = Question(title=title, detail=detail, author_id=author_id, cf=cf)

db.session.add(question)  #加入数据库db.session.commit()

returnredirect(url_for('index'))

代码解析:定义一个question的方法,如果请求的方式是“GET”那么返回到question.html,否则获取title,detail,author_id,cf,然后加进数据库的question表,返回index页面。

以下是评论部分代码:

@app.route('/answer/', methods=['GET', 'POST'])

defanswer():

ifrequest.method == 'POST':

question_id = request.form.get('question_id')

author_id = request.form.get('author_id')

detail = request.form.get('detail')

comment = Comment(question_id=question_id, author_id=author_id, detail=detail)

db.session.add(comment)

db.session.commit()

returnredirect(url_for('detail', question_id=question_id))

代码解析:定义一个answer方法,如果请求的是“POST”方法,那么获取question_id,author_id,detail,然后加入数据库的comment表,返回到detail页面。用question_id作为主键。

六、成品展示

这是首页的效果图,利用了444的模板,令整个页面居中。

这是用户的注册,登陆以及登陆后跳转首页的效果图:

这是发布问答页面以及发完以后的效果图:

这是导航栏用户的个人信息以及修改等效果图:

这是上传头像的页面:

这是全部评论的页面:

这是全部问答的页面:

这是个人信息 的页面:

以下是模糊搜索以及高级搜索的效果图:

这是模糊搜索:

这是高级搜索的效果图,可以选择问答分类和发布时间来进行搜索。

以下是按问答的分类来搜索的效果图:

点击所想要的类目,首页就排除其他的分类,显示你所选择的分类。比如选择体育

再比如选择生活

以下是用户评论效果图:

由于太长,所以做成了两个并排的样式。

这是点赞以及收藏的效果图:

点击收藏后:

点击点赞后:

这是热门文章推荐:

会按照文章的点击数以及评论数,自动排序,把前三的文章给显示出来。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值