学习日记,浅入Flask

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

经过了差不多两个月时间,断断续续的学习,让我对Flask又更加深入的了解了一点点,话不多说,上实例《点击进入上一篇文章

—![在这里插入图片描述](https://img-blog.csdnimg.cn/8305c4de889f48588645744f0204b1af.png

一、加强逻辑判断

上次写的登录接口太简陋了,只做了一些简单的逻辑判断,后面进行了加强,因为不会写前端,所以我的所有判断就是数据库和接口做判断

    elif request.method == 'GET':
        get_data = request.args.to_dict()
        name = get_data.get('user')
        password = get_data.get('password')
        return_dict = {}
        if name is None:
            return_dict['return_code'] = '404'
            return_dict['return_info'] = '请求错误'
            return json.dumps(return_dict, ensure_ascii=False)
        elif password is None:
            return_dict['return_code'] = '404'
            return_dict['return_info'] = '请求错误'
            return json.dumps(return_dict, ensure_ascii=False)
        elif len(request.args) == 0:
            return_dict['return_code'] = '403'
            return_dict['return_info'] = '参数请求为空'
            return json.dumps(return_dict, ensure_ascii=False)

        elif len(request.args) > 2:
            return_dict['return_code'] = '404'
            return_dict['return_info'] = '请求错误'
            return json.dumps(return_dict, ensure_ascii=False)
        if len(request.args) == 2:
            return_dict = {'return_code': '200', 'return_info': '处理成功',
                           'result': "用户 %s 登录成功" % name,
                           "login_time": datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
                           "token": token(),
                           "data": Select_Sql().api_select(name, password)
                           }

            now_token = return_dict["token"]
            Inset_Sql().token_data(now_token, name)
            #  initialization_token(name)  # TODO 定时清空TOKEN
            if return_dict["data"] == {"code": 402, "result": "账号或密码错误"}:
                return {"code": 402, "result": "账号或密码错误"}
            return json.dumps(return_dict, ensure_ascii=False)

        else:
            return jsonify({"code": 500, "result": "服务器错误"})

对比上一次登录接口进行了更严谨的判断,以及数据库判断,以及登录后会生成一个token,通过user和token来判断是不是同一个用户

    def api_select(self, user, psd):
        """登录"""
        md5_psd = global_setting.Md5_token(psd)
        self.cursor.execute(
            "select * from users where user = '{}' and md5password = '{}'".format(user, md5_psd))
        cur_data = self.cursor.fetchall()
        if len(cur_data) == 0:
            return {"code": 402, "result": "账号或密码错误"}

        if cur_data is not None:
            sql_data = cur_data[0]
            values = sql_data["user"]
            values1 = sql_data["md5password"]

            if user == values and md5_psd == values1:
                self.cursor.execute(
                    "select news.name,users.uid, users.phone,news.age,news.sex, news.character "
                    "from users INNER JOIN news  on users.user = %s where users.uid = news.uid",
                    user)
                relust = self.cursor.fetchall()
                relust = relust[0]
                return relust
            else:
                return {"code": "402", "result": "账号或密码错误"}
    def token_data(self, token, user):
        """储存token"""
        try:
            self.cursor.execute("update users inner join news on users.uid = news.uid "
                                "set users.token = %s,news.token = %s where user = %s ", (token, token, user))
            self.connect.commit()
        except Exception as e:
            return e

        finally:
            self.cursor.close()
            self.connect.close()

至于我数据库为啥不用flask_sqlalchemy.SQLAlchemy 原因是我太久没看代码的话SQLAlchemy 容易忘记看不懂写的啥了

2.下一步计划

1.我在想怎么样用定时器去给token做定时删除
2.对文件和图片进行上传
3.优化数据库的表关联

总结

没有很系统的去学,只能用平时零散的时间去研究,根基太差,自学进度好慢啊

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值