Flask 根据要求显示 return 数据

Flask show return data on request

我有一些问题。 我是 python 和烧瓶的新手。

我正在构建一个 API 来查询数据库,一个单独的应用程序前端和后端。但是用 Flask 来拯救搜索结果的问题来了。

示例:

以下 'curl' 命令使用用户名 'miguel' 和密码 'python' 注册新用户:

$ Curl -X POST -H -i "Content-Type: application / json 
'd' {"username":" miguel","password":"python"} 'http://127.0.0.1:5000/api/users

RETURN:

HTTP / 1.0 201 CREATED Content-Type: application / json Content-Length: 27 Location: http://127.0.0.1:5000/api/users/1 Server: Werkzeug / Python 0.9.4 / 2.7.3 Date: Thu, 28 Nov 2013 19:56:39 GMT { "username": "miguel" }


通过 doterminal 我们 return 用户名,有人知道在前端检索和显示用户名的方法。

Resaltar 它应该考虑不同机器上的字体结尾和背面以及 运行。

--------更新--------

后端

@app.route('/api/users', methods=['POST'])
def new_user():
    username = request.json.get('username')
    password = request.json.get('password')
    if username is None or password is None:
        abort(400)    # missing arguments
    if User.query.filter_by(username=username).first() is not None:
        abort(400)    # existing user
    user = User(username=username)
    user.hash_password(password)
    db.session.add(user)
    db.session.commit()
    return (jsonify({'username': user.username}), 201,
            {'Location': url_for('get_user', id=user.id, _external=True)})

前端

@home_blueprint.route('/cadastro', methods=['POST'])
def cadastro():
    username = request.form['username']
    password = request.form['password']

    if username and password:
        url = 'http://127.0.0.1:4000/api/users'
        payload = {'username': username,'password':password}
        headers = {'content-type': 'application/json'}
        r = requests.post(url, data=json.dumps(payload), headers=headers)

    else:
        return "ERRO"
    return "Create new user sucesso!"

(post 我的评论作为答案)

您可以简单地使用 r.textthe document:

获取 requests.post 的重新调整数据

When you make a request, Requests makes educated guesses about the encoding of the response based on the HTTP headers. The text encoding guessed by Requests is used when you access r.text.

所以只需替换

return "Create new user sucesso!"

return r.text

在这种情况下,r.textrequests.post(url, data=json.dumps(payload), headers=headers) return 数据,创建者:

return (jsonify({'username': user.username}), 201,
        {'Location': url_for('get_user', id=user.id, _external=True)})