为了账号安全,请及时绑定邮箱和手机立即绑定

【九月打卡】第10天+管理员后台账号模块开发

标签:
Flask

https://coding.imooc.com/learn/list/265.html


课程名称:Python Flask构建微信小程序订餐系统



课程章节:第七章 管理员后台账号模块开发——7-3 登录退出(1)



主讲老师:编程浪子



7-3 登录退出(1)

    1.管理登录——是否能正确显示输入的用户名和密码

    1.代码

    @route_user.route("/login", methods=["GET", "POST"])

    def login():

        if request.method == "GET":

            # render_template()方法——页面渲染   参数—传入指定html文件

            return render_template("user/login.html")

     

        # req字典存储request内值

        req = request.values

        '''

        login.html文件

        <div class="form-group">

            <input type="text" name="login_name" class="form-control" placeholder="请输入登录用户名">

        </div>

        <div class="form-group">

            <input type="password" name="login_pwd" class="form-control" placeholder="请输入登录密码">

        </div>

        '''

        # 如果'login_name'作为key值在req字典内则返回对应的value值

        login_name = req['login_name'] if 'login_name' in req else ''

        login_pwd = req['login_pwd'] if 'login_pwd' in req else ''

     

        return "%s  -  %s" % (login_name, login_pwd)

    https://img1.sycdn.imooc.com//63213b470001cb5111750855.jpg

     

    2.登录运行结果展示

    https://img1.sycdn.imooc.com//63213b540001c12015870780.jpg

    https://img1.sycdn.imooc.com//63213b5f0001613409850485.jpg

    

     

     

     

     

    2.用户名、密码正确性判断

    1.核心代码

       # 引入返回jsonify的方法 

       from flask import jsonify

       

       # 定义json数值用于返回值html页面

        resp = {'code': 200, 'msg': '登录成功', 'data': {}}

     

        if login_name is None or len(login_name) < 1:

            resp['code'] = -1

            resp['msg'] = "请输入正确的登录用户名~~"

     

            return jsonify(resp)

     

        if login_pwd is None or len(login_pwd) < 1:

            resp['code'] = -1

            resp['msg'] = "请输入正确的登录密码~~"

     

            return jsonify(resp)

            https://img1.sycdn.imooc.com//63213b710001c58211710850.jpg

     

    2.运行输入空用户名和密码是否会出现提示

    1.输入空用户名

        https://img1.sycdn.imooc.com//63213b7f000161d514900733.jpg

       https://img1.sycdn.imooc.com//63213bac0001fb9209510332.jpg


    2.输出空密码

        https://img1.sycdn.imooc.com//63213bbe0001502714910712.jpg

       https://img1.sycdn.imooc.com//63213bc8000113b107190265.jpg

    

    

     

    3.查询数据库验证用户名、密码是否正确

     

    1.往Linux数据库中插入数据

            https://img1.sycdn.imooc.com//63213bed0001c69116270535.jpg

         https://img1.sycdn.imooc.com//63213bf800016e2719201030.jpg

    

     

     

    2.验证用户名是否存在

    # 验证用户名是否存在——根据用户名查询用户信息

       

        # 查询数据库

        user_info = User.query.filter_by(login_name=login_name)

        if not user_info:

            resp['code'] = -1

            resp['msg'] = "请输入正确的用户名或密码~1~"

     

            return jsonify(resp)

             https://img1.sycdn.imooc.com//63213c0800011d1611710423.jpg

    

     

    结果:

            https://img1.sycdn.imooc.com//63213c390001036114580733.jpg

          https://img1.sycdn.imooc.com//63213c470001c6f307940357.jpg

    注:此时数据库中没有小明这个用户,但是也能够正常返回小明 - 123456 ,因此可以断定查询出现错误

     

    user_info = User.query.filter_by(login_name=login_name)  ---改为--->  user_info = User.query.filter_by(login_name=login_name).first()

    https://img1.sycdn.imooc.com//63213c6c0001301914980725.jpg

    https://img1.sycdn.imooc.com//63213c780001a92206420329.jpg

    3.密码加密算法

            https://img1.sycdn.imooc.com//63213c860001018112930566.jpg

     

     

     

    4.验证用户名、密码是否都正确

        https://img1.sycdn.imooc.com//63213c990001f54311700726.jpg

     

    用户名正确、密码错误验证结果:

        https://img1.sycdn.imooc.com//63213ca300012ac615200763.jpghttps://img1.sycdn.imooc.com//63213cb1000144bb06200312.jpg

   

    4.重写登录html、js文件

    1.login.html文件修改

    2.login.js文件

    3.前端链接统一管理函数

    

     

    5.登录cookie验证

    1.用户生成指定cookie值

    from flask import make_response

    import json

     

    response = make_response(json.dumps(resp))

    response.set_cookie(app.config['AUTH_COOKIE_NAME'], "%s#%s" % (UserService.geneAuthCode(user_info), user_info.uid))

    2.对用户cookie值进行加密

    3.运行显示加密cookie值


 


 

 

 

 



点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消