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.text
从 the 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.text
是 requests.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)})
我有一些问题。 我是 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.text
从 the 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.text
是 requests.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)})