管理信息系统课程设计007王俊祺

{%blockdaohangtitle%}注册{%endblock%}

{%blockdaohanghead%}

{%endblock%}

{%blockdaohangbody%}

Username:

Nickname:

Password:

Lnputagain:


</p><p>{%blockdaohangtitle%}首页{%endblock%}</p><p>

{%blockdaohanghead%}{%endblock%}

{%ifsessionusername%}

onclick="">{{sessionusername}}

注销

{%else%}

注册

{%endif%}

{%ifsessionuserid%}

设置

  • 名称


    推荐作者

    {%forfooinauthor%}

    {%endfor%}

    {%forfooinydfabu%}

    浏览:{{foo.yuedu}}

    {%forfooinfabus%}

    {%iffoo.author.imgisnone%}

    style="width:50px">

    class="glyphiconglyphicon-user">{{foo.author.nickname}}

    {{foo.creat_time}}

    {{foo.leixing}}

    {{foo.dianzangs|length}}

    {{foo.comments|length}}

    {{foo.yuedu}}


    {#

    {{foo.detail|safe}}

    #}

    {%blockdaohangtitle%}登陆{%endblock%}

    {%blockdaohangtitle%}发布{%endblock%}

    标题

    详情

    {##}

    请选择类型

    散文

    诗歌

    科普

    历史

    电影

    人文

    小说

    摄影

    旅行

    文化


    {%blockdaohangtitle%}发布详情{%endblock%}

    {#.list-unstyledimg{#}

    {#height:50px;#}

    {#width:50px;#}

    {#}#}

    {{fa.author.username}}

    {{fa.creat_time}}

    浏览:{{fa.yuedu}}

    点赞:{{fa.dianzangs|length}}

    {{fa.detail|safe}}

    {%ifdzyes%}

    class="glyphiconglyphicon-heart">{{fa.dianzangs|length}}

    class="glyphiconglyphicon-heart-empty">赞

    {%ifyes%}

    已收藏

    +收藏

    {#

    发送

    {%forfooinfa.comments%}

    class="glyphiconglyphicon-fire">{{foo.author.username}}

    {{foo.creat_time}}

    {{foo.detail|safe}}

    (1)个人信息:

    {%extends'yonghufather.html'%}

    {%blockyonghubody%}

    个人信息

    用户:{{username}}

    编号:{{userid}}

    昵称:{{nickname}}

    头像:

    {%ifimgisnone%}

    style="width:100px">

    上传头像

    (2)发布信息:

    全部发布信息({{fabus|length}})

    {{foo.creat_time}}

    {{foo.leixing}}

    {%forfooincomments%}

    作者

    {%forfooinshoucang%}

    (5)修改密码:

    {%blockdaohangtitle%}密码修改{%endblock%}

    密码修改

    用户账号

    value="{{users.username}}"readonly>

    新密码

    required>

    确定

    五、系统实现详解:

    fromflaskimportFlask,render_template,request,redirect,url_for,session

    fromflask_sqlalchemyimportSQLAlchemy

    importconfig,os

    fromfunctoolsimportwraps

    fromdatetimeimportdatetime

    fromsqlalchemyimportor_,and_

    fromwerkzeug.securityimportgenerate_password_hash,check_password_hash

    app=Flask(__name__)#创建Flask对象

    app.config.from_object(config)#关联config.py文件进来

    db=SQLAlchemy(app)#建立和数据库的关系映射

    classUser(db.Model):#创建类User

    __tablename__='user'#类对应的表名user

    id=db.Column(db.Integer,primary_key=True,autoincrement=True)#autoincrement自增长

    username=db.Column(db.String(20),nullable=False)#nullable是否为空

    _password=db.Column(db.String(200),nullable=False)#密码加密内部使用

    nickname=db.Column(db.String(20),nullable=True)

    img=db.Column(db.String(100))

    @property#定义函数,需要用属性时可以用函数代替

    defpassword(self):#密码加密外部使用

    returnself._password

    @password.setter

    defpassword(self,row_password):#密码进来时进行加密,generate_password_hash是一个密码加盐哈希函数,生成的哈希值可通过check_password_hash()进行验证。

    self._password=generate_password_hash(row_password)

    defcheck_password(self,row_password):#check_password_hash函数用于验证经过generate_password_hash哈希的密码。若密码匹配,则返回真,否则返回假。

    result=check_password_hash(self._password,row_password)

    returnresult

    classFabu(db.Model):#问答

    __tablename__='fabu'

    id=db.Column(db.Integer,primary_key=True,autoincrement=True)

    title=db.Column(db.String(100),nullable=False)

    detail=db.Column(db.Text,nullable=False)

    leixing=db.Column(db.String(20),nullable=True)

    author_id=db.Column(db.Integer,db.ForeignKey('user.id'))#数据类型是db.Integer,db.ForeignKey参数指定外键是哪个表中哪个id

    #第一个参数表明这个关系的另一端是哪个类,第二个参数backref,将向User类中添加一个fabu属性,从而定义反向关系,这一属性可访问Fabu类,获取的是模型对象

    yuedu=db.Column(db.Integer,nullable=False)

    classShoucang(db.Model):#收藏

    __tablename__='shoucang'

    author_id=db.Column(db.Integer,db.ForeignKey('user.id'))

    fabu_id=db.Column(db.Integer,db.ForeignKey('fabu.id'))

    fabu=db.relationship('Fabu',backref=db.backref('shoucangs'))

    author=db.relationship('User',backref=db.backref('shoucangs'))

    classDianzang(db.Model):#点赞

    __tablename__='dianzang'

    fabu=db.relationship('Fabu',backref=db.backref('dianzangs'))

    author=db.relationship('User',backref=db.backref('dianzangs'))

    db.create_all()#测试是否连接成功

    '''

    #插入功能

    user=User(username='15',password='12')

    db.session.add(user)

    db.session.commit()

    #查询功能

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

    print(user.username,user.password)

    #修改功能

    user.password='888'

    #删除功能

    db.session.delete(user)

    #session会话连接

    #filter()过滤器

    #route制定路径和函数之间的关系

    #def定义一个变量

    #跳转首页。

    @app.route('/')

    defdaohang():

    context={

    'fabus':Fabu.query.order_by('-creat_time').all(),

    'author':User.query.all(),

    }

    returnrender_template('daohang.html',**context)

    #跳转测试。

    @app.route('/lin/')

    deflin():

    return'lin'

    #跳转登陆。

    @app.route('/denglu/',methods=['GET','POST'])#methods定义它有两种请求方式

    defdenglu():

    ifrequest.method=='GET':

    returnrender_template('denglu.html')

    else:

    username=request.form.get('user')#post请求模式,安排对象接收数据

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

    user=User.query.filter(User.username==username).first()#作查询,并判断

    ifuser:#判断用户名

    ifuser.check_password(password):#判断密码

    session['user']=username#利用session添加传回来的值username

    session['user_id']=user.id

    returnredirect(url_for('daohang'))

    returnu'用户密码错误'

    returnu'用户不存在,请先注册'

    #跳转密码修改页。

    @app.route('/password_update/')

    defpassword_update(user_id):

    users=User.query.filter(User.id==user_id).first()#查询出要修改密码的该用户

    returnrender_template('password_update.html',users=users)

    #跳转修改密码后接受数据。

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

    defpassword_update1():

    username=request.form.get('username')#接收username的值,知道要修改的是哪个用户

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

    users=User.query.filter(User.username==username).first()#查询出要修改用户的整条信息

    users.password=password#执行修改

    returnredirect(url_for('yonghu',username_id=users.id,tag='1'))

    @app.context_processor#上下文处理器,定义变量然后在所有模板中都可以调用,类似idea中的model

    defmycontext():

    user=session.get('user')

    user_id=session.get('user_id')

    ifuser:

    return{'sessionusername':user,'sessionuserid':user_id}#包装到username,在所有html模板中可调用

    return{}#返回空字典,因为返回结果必须是dict

    #跳转注销。

    @app.route('/logout')

    deflogout():

    session.clear()#注销时删除所有session

    #跳转注册。

    @app.route('/zhuce/',methods=['GET','POST'])#methods定义它有两种请求方式,因为它在表单的请求是post,类似我们在idea中的sava请求模式

    defzhuce():

    returnrender_template('zhuce.html')

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

    returnu'该用户已存在'

    user=User(username=username,password=password,nickname=nickname)#将对象接收的数据赋到User类中,即存到数据库

    db.session.add(user)#执行操作

    returnredirect(url_for('denglu'))#redirect重定向

    defloginFirst(fabu):

    @wraps(fabu)#加上wraps,它可以保留原有函数的__name__,docstring

    defwrapper(*args,**kwargs):#定义wrapper函数将其返回,用*args,**kwargs把原函数的参数进行传递

    ifsession.get('user'):#只有经过登陆,session才能记住并get到值

    returnfabu(*args,**kwargs)

    returnredirect(url_for('denglu'))

    returnwrapper

    #跳转图片。

    @app.route('/tupian/')

    deftupian():

    returnrender_template('tupian.html')

    #跳转发布。

    @app.route('/fabu/',methods=['GET','POST'])#methods定义它有两种请求方式

    @loginFirst#将decorator定义的增强函数放在待增强函数定义的上面

    deffabu():

    returnrender_template('fabu.html')

    title=request.form.get('title')#post请求模式,安排对象接收数据

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

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

    yuedu=0

    author_id=User.query.filter(

    User.username==session.get('user')).first().id#将sessionget到的user进行查询并取出id放到外键author_id中

    fabu=Fabu(title=title,detail=detail,author_id=author_id,leixing=leixing,

    yuedu=yuedu)#将对象接收的数据赋到Fabu类中,即存到数据库

    db.session.add(fabu)#执行操作

    db.session.commit()#提交到数据库

    returnredirect(url_for('daohang'))#redirect重定向

    #跳转发布详情

    @app.route('/fabuview/')#和idea的update一样,将id带到控制器

    deffabuview(fabu_id):

    yes=Shoucang.query.filter(#yes用在用户详情页判断是否已收藏的按钮

    and_(

    Shoucang.author_id==session.get('user_id'),Shoucang.fabu_id==fabu_id

    )

    ).first()

    dzyes=Dianzang.query.filter(#dzyes用在用户详情页判断是否已点赞的按钮

    Dianzang.author_id==session.get('user_id'),Dianzang.fabu_id==fabu_id

    fa=Fabu.query.filter(Fabu.id==fabu_id).first()#根据主页带回来的id查询出整条元组记录,丢进fa

    fa.yuedu=fa.yuedu+1#定义浏览功能,每次进去详情页,浏览次数加1

    returnrender_template('fabuview.html',fa=fa,comments=comments,yes=yes,

    dzyes=dzyes)#把值fa丢进键fa,在fabuview.html页面调用

    #方法二:

    #fabu={

    #'fa':Fabu.query.filter(Fabu.id==fabu_id).first()

    #}

    #returnrender_template('fabuview.html',**fabu)

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

    defcomment():

    detail=request.form.get('pinglun')#post请求模式,安排对象接收数据

    author_id=User.query.filter(User.username==session.get('user')).first().id

    fabu_id=request.form.get('fa_id')

    comment=Comment(detail=detail,author_id=author_id,fabu_id=fabu_id)#将对象接收的数据赋到Comment类中,即存到数据库

    db.session.add(comment)#执行操作

    returnredirect(url_for('fabuview',fabu_id=fabu_id))#重定向到fabuview请求时要带fabu_id

    #跳转用户详情

    @app.route('/yonghu//')#为了把页面分开,我们在html页面传了一个tag参数

    defyonghu(username_id,tag):

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

    shoucang=Shoucang.query.filter(Shoucang.author_id==username_id).all()

    'userid':user.id,

    'username':user.username,

    'nickname':user.nickname,

    'fabus':user.fabu,

    'comments':user.comments,

    'shoucang':shoucang,

    'img':user.img

    }#根据tag的不同去到不同页面,一个请求跳转3个不同页面

    iftag=='1':

    returnrender_template('yonghu1.html',**context)

    eliftag=='2':

    returnrender_template('yonghu2.html',**context)

    eliftag=='3':

    returnrender_template('yonghu3.html',**context)

    returnrender_template('yonghu4.html',**context)

    #@app.route('/yonghu2/')

    #defyonghu2(username_id):

    #user=User.query.filter(User.id==username_id).first()

    #context={

    #'userid':user.id,

    #'username':user.username,

    #'fabus':user.fabu,

    #'comments':user.comments

    #returnrender_template('yonghu2.html',**context)

    #

    #@app.route('/yonghu3/')

    #defyonghu3(username_id):

    #returnrender_template('yonghu3.html',**context)

    #跳转首页搜索

    @app.route('/search/')

    defsearch():

    sousuo=request.args.get('sousuo')#args获取关键字,区别form

    author=User.query.all()

    ydfabu=Fabu.query.filter(Fabu.yuedu>5).all()

    fabus=Fabu.query.filter(

    or_(#两种查询条件

    Fabu.title.contains(sousuo),#contains模糊查

    Fabu.detail.contains(sousuo)

    ).order_by('-creat_time')

    returnrender_template('daohang.html',fabus=fabus,author=author,ydfabu=ydfabu)#fabus要和原首页数据模型一样

    #跳转高级分类查询

    @app.route('/fenlei/')

    deffenlei():

    fenlei=request.args.get('fenlei')#args获取关键字,区别form

    fenlei_fabus=Fabu.query.filter(

    Fabu.title.contains(fenlei),#contains模糊查

    Fabu.leixing.contains(fenlei),

    Fabu.creat_time.contains(fenlei)

    returnrender_template('daohang.html',fabus=fenlei_fabus,author=author,ydfabu=ydfabu)#fabus要和原首页数据模型一样

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

    @loginFirst

    defshoucang():

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

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

    shoucang=Shoucang(fabu_id=scfabu_id,author_id=scuser_id)

    db.session.add(shoucang)#执行操作

    returnredirect(url_for('fabuview',fabu_id=scfabu_id))

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

    defdianzang():

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

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

    dianzang=Dianzang(fabu_id=dzfabu_id,author_id=dzuser_id)

    db.session.add(dianzang)#执行操作

    returnredirect(url_for('fabuview',fabu_id=dzfabu_id))

    #上传头像

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

    defuploadLogo(user_id):

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

    f=request.files['logo']

    basepath=os.path.dirname(__file__)#当前文件所在路径

    upload_path=os.path.join(basepath,'static/img',f.filename)#注意:没有的文件夹一定要先创建,不然会提示没有该路径

    f.save(upload_path)

    user.img='img/'+f.filename

    returnredirect(url_for('yonghu',username_id=user_id,tag=1))

    THE END
    1.管理信息系统课程设计完整版.docx管理信息系统课程设计HEN system office room HEN16HHENS2AHENS8Q8HENH1688管理信息系统课程设计报告题目企业库存管理系统分析与设计摘要传统企业同互联网技术的快速融合。设计多个部分进行叙述说明,希望https://www.renrendoc.com/paper/231521771.html
    1.毕业设计(论文)信息化管理系统系统登录 用户名: 密码: 下次记住我http://bysj.qgxy.cn/
    2.信息管理系统设计信息管理系统设计 1绪论 1.1 问题的提出 人类刚跨过新千年,计算机通信技术的迅速发展和信息技术的广泛应用,正把人类带进计算机信息时代,计算机的应用已普及到经济和社会生活的各个领域。教育领域也不例外,现今已经出现了各种图书馆管理系统、超市管理系统……其中学生的档案成绩管理是任一院校都不可缺少的部分,它的内容...https://blog.csdn.net/qq_61141142/article/details/133692075
    3.信息管理系统设计步骤信息管理系统设计步骤详解系统测试是信息管理系统设计过程中非常关键的一步。测试人员需要对系统进行全面的测试,包括功能测试、性能测试、安全性测试等,以确保系统能够满足需求分析阶段确定的所有要求。测试过程中发现的问题需要及时反馈给开发团队进行修复,直至系统达到预定的质量标准。 https://blog.51cto.com/u_16236585/11325276
    4.学生信息管理系统设计12篇(全文)学生信息管理系统设计 第1篇 目前,学校的办公方式仍然采用传统的基于纸质的办公模式,既浪费时间且效率低下,也不环保,对于处理大量的学生信息来说变得流动不畅通,反馈时间变长,缺乏时效性,该模式已经无法适应新时期的办公需要。随着网络技术的发展,利用计算机网络技术设计一种基于Web的学生信息管理系统,这是一种优化的科...https://www.99xueshu.com/w/ikeyzgd24e90.html
    5.管理信息系统设计论文(通用11篇)篇2:管理信息系统设计论文 关键词:图书管理; 信息化; 系统; 1 系统技术关键 1.1 B/S模式 B/S模式是当前网络技术发展大环境下比较流行的系统架构的设计模块, B/S模式一般采用三层架构的模式分别是表示层、中间层以及数据层。 表示层:也称之用户层, 是系统来响应用户信息的层次, 也是对用户展现的层次用户通过用...https://www.360wenmi.com/f/filexefd1mts.html
    6.图书管理系统设计与实现—看这篇就够了腾讯云开发者社区图书管理系统设计与实现 图书馆人员结构复杂,人员数量有限,涉及方面很广,如果还使用手工操作处理图书借阅问题,工作将非常繁琐,需要大量的人力、物理、财力,极大的浪费了资源,对于图书管理人员来说,图书馆管理包括图书信息管理、图书类别管理、借阅信息管理、管理员信息管理等等。而这些项目在过去靠手工操作,需要手工记录这些...https://cloud.tencent.com/developer/article/1697988
    7.北京科技大学信息化建设与管理办公室系统设计 1.校园导航系统功能设计 校园导航系统由“创新港导览”小程序和后台管理系统两部分组成。 其中,在开发实施方面,利用小程序提供GPS位置坐标信息接口,用户登录和用户信息校验接口,小程序还支持对蓝牙设备、Wi-Fi设备、相机等硬件设备的兼容和对接。 https://info.ustb.edu.cn/ITxy/yxal/f436ae4e9cc647f89b97123a395103b9.htm
    8.2023届电子信息与计算机工程系优秀毕业设计作品毕业设计本设计旨在设计和实现一个基于Vue框架和SpringCloud框架的学生信息管理系统,以满足高校学生管理工作的需求。分析了学生信息管理系统的发展历程、现状和未来趋势,强调了学生信息管理系统在教育管理中的重要意义。针对系统的用户进行了分析,包括教师和管理员两种角色。并对系统的功能性需求进行了分析,将系统划分为三个主要模块...https://www.cdutetc.cn/c/4c068411-751b-4f12-b725-f69e34c010a3.html
    9.Winform学生信息管理系统主页面设计(2)C#教程这篇文章主要为大家详细介绍了Winform学生信息管理系统主页面设计思路,感兴趣的小伙伴们可以参考一下https://www.jb51.net/article/85434.htm
    10.信息系统分析与设计(豆瓣)《信息系统分析与设计(第2版普通高等学校管理科学与工程类学科专业主干课程教材)》(作者陈禹)是普通高等学校管理科学与工程类学科专业主干课程教材之一。 信息系统分析与设计是信息管理与信息系统专业的主干课程之一,是从事各类信息管理项目建设的技术人员必备的核心能力。《信息系统分析与设计(第2版普通高等学校管理科学与...https://book.douban.com/subject/6838476/
    11.(精选)计算机毕业设计6篇(2) 统计与报表功能是企业考勤管理信息系统设计的目的,数据的不一致不可能产生一致的统计与报表,即使一致的数据也有用户的'不同需求,这种需求也包括个人偏好,同一个人也有不同时期的特定需求,如何设计让用户满意的统计与报表功能是我们开发者不断追求的目标。 https://www.fwsir.com/fanwen/html/fanwen_20240915093109_3981108.html