Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flask_restx@api.route返回语句导致类型错误_Flask_Flask Restplus_Jsonify - Fatal编程技术网

Flask_restx@api.route返回语句导致类型错误

Flask_restx@api.route返回语句导致类型错误,flask,flask-restplus,jsonify,Flask,Flask Restplus,Jsonify,我有一个无法解决的问题。我想在flask中使用http cookies。这是文档中的代码: @app.route('/token/auth', methods=['POST']) def login(): username = request.json.get('username', None) password = request.json.get('password', None) if username != 'test' or password != 'test'

我有一个无法解决的问题。我想在flask中使用http cookies。这是文档中的代码:

@app.route('/token/auth', methods=['POST'])
def login():
    username = request.json.get('username', None)
    password = request.json.get('password', None)
    if username != 'test' or password != 'test':
        return jsonify({'login': False}), 401

    # Create the tokens we will be sending back to the user
    access_token = create_access_token(identity=username)
    refresh_token = create_refresh_token(identity=username)

    # Set the JWT cookies in the response
    resp = jsonify({'login': True})
    set_access_cookies(resp, access_token)
    set_refresh_cookies(resp, refresh_token)
    return resp, 200
我使用
flask\u restx
自动将响应转换为JSON,因此第一个示例中不需要
jsonify
。但是,仍然需要对它进行jsonifid,因为我不能在字典上使用
set\u access\u cookie
。这最终会导致一个嵌套响应,如下面的
jsonify(jsonify(x))

这是错误:
TypeError:Response类型的对象不可JSON序列化


有什么办法可以克服这个问题吗?

可以这样解决:

data = dict(login=True)
resp = make_response(jsonify(**data), 200)
access_token = create_access_token(identity=user)
refresh_token = create_refresh_token(user)
set_access_cookies(resp, access_token)
set_refresh_cookies(resp, refresh_token)
return resp

您能否显示
user.format()
的结果?已解决,但非常感谢您查看:-)
data = dict(login=True)
resp = make_response(jsonify(**data), 200)
access_token = create_access_token(identity=user)
refresh_token = create_refresh_token(user)
set_access_cookies(resp, access_token)
set_refresh_cookies(resp, refresh_token)
return resp