TypeError:支持flask api中所需的缓冲区API的对象

时间:2018-06-01 15:46:06

标签: python python-3.x api flask

我有这个代码,我想将密码转换为md5

class UserLogin(Resource):
    def post(self):

            # Parse the arguments

            parser = reqparse.RequestParser()
            parser.add_argument('username')
            parser.add_argument('password')
            args = parser.parse_args()

            _user = args['username']
            _userPassword = args['password']
            _h = hashlib.md5(_userPassword.encode())
            conn = mysql.connect()
            cursor = conn.cursor()
            cursor.execute('''select * from user where username = %s && password = %s''', (_user, _h))
            data = cursor.fetchall()

            return jsonify(data)

但错误说明:h = hashlib.md5(_userPassword.encode()) AttributeError:'NoneType'对象没有属性'encode'

当我从hashlib中删除encode()时,错误返回为:_h = hashlib.md5(_userPassword) TypeError:支持所需缓冲区API的对象

请帮帮我。即时通讯使用python3.6

1 个答案:

答案 0 :(得分:0)

而不是

_h = hashlib.md5(_userPassword.encode())

你可能想要

_h = hashlib.md5(_userPassword.encode()).hexdigest()

如果您正在存储密码的MD5哈希,那么

password = md5(%s)

部分如果您绑定_h,查询就不会匹配它。