python - 如何通过响应的发布请求在烧瓶终端中打印值?
问题描述
我正在尝试将数据变量的返回值打印到终端上。我得到的响应为 200 但是我想打印变量的实际值。似乎我不能使用 print 语句,而只能使用 return 语句来查看数据。
App.py 使用 print 语句:
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/api', methods=['GET','POST'])
def api():
if request.method == 'POST':
data = request.form['username']
print((jsonify(data)))
else:
return ''
错误:
TypeError: The view function did not return a valid response. The function either returned None or ended without a return statement.
带有返回语句的 App.py:
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/api', methods=['GET','POST'])
def api():
if request.method == 'POST':
data = request.form['username']
print((jsonify(data)))
else:
return ''
终端输出:
127.0.0.1 - - [21/Jul/2020 19:02:24] "POST /api HTTP/1.1" 200 -
我希望能够打印诸如“200”之类的内容,“用户名是 Jeff”。
解决方案
错误说明了一切 - 你没有返回任何东西
@app.route('/api', methods=['GET','POST'])
def api():
if request.method == 'POST':
data = request.form['username']
print((jsonify(data)))
else:
return ''
仅当请求方法为GET
. 您需要做的是在请求方法为时返回一些东西POST
(这是您在问题中收到的内容)。所以你需要做这样的事情:
@app.route('/api', methods=['GET','POST'])
def api():
if request.method == 'POST':
data = request.form['username']
print((jsonify(data)))
return "Username is " + data
else:
return ''
假设data
是Jeff
。该print
语句仅在您的服务器控制台中打印数据。您必须向提出请求的人返回一些东西。
推荐阅读
- java - Android Studio:解析多个嵌套的 JSON 数组
- angular - 如何使用 angular2 解决 [object object] 进入 html
- ios - 将应用程序上传到 App Store 而不添加 Apple 帐户
- laravel - Laravel 推送通知和消息传递
- java - 使用斯坦福 POS 标记器时出现 Java 内存不足错误
- mongodb - 在数组 mongoDB 中搜索并返回对象
- android - 在 web playstore 上找到的 android 应用,但在移动应用 play store 上没有
- html - 如何在Angular中单击时为特定图像设置动画
- html - 如何在所有浏览器中使表格保持一致
- cassandra - 在消耗 CPU 周期的所有节点上频繁压缩 OpsCenter.rollup_state