首页 > 解决方案 > 如何通过响应的发布请求在烧瓶终端中打印值?

问题描述

我正在尝试将数据变量的返回值打印到终端上。我得到的响应为 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”。

标签: pythonflask

解决方案


错误说明了一切 - 你没有返回任何东西

@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 ''

假设dataJeff。该print语句仅在您的服务器控制台中打印数据。您必须向提出请求的人返回一些东西。


推荐阅读