【问题标题】:Get and Post data in Flask request在 Flask 请求中获取和发布数据
【发布时间】:2020-04-10 09:28:43
【问题描述】:

您好,提前感谢您的帮助。 我正在尝试设置一个 ReactJS 和 Flask Web 应用程序,但我无法将数据导入 Flask,我正在使用 Insomnia 测试将数据发送到 Flask,并且 POST 请求返回代码 200,但我继续获取下面的打印屏幕上出现错误,UnboundLocalError: local variable 'text' referenced before assignment。字符串不会传递给 TTS(文本到语音)类进行处理,当我对下面注释代码中的字符串使用直接分配时,导入工作正常。

我尝试使用 JSON 发送数据,现在我尝试使用表单格式,它返回相同的错误。

你能帮我看看我的代码吗?

from flask import Flask, render_template, request
import speak

# text = "AI AI minha machadinha !!"
# lang = "pt"

app = Flask(__name__, static_folder="../static/dist", template_folder="../static")
@app.route("/", methods=["GET","POST"])
def index():
    return render_template("index.html")

@app.route("/hello", methods=["GET","POST"])
def hello():
    if request.method == "POST":
        text = request.form["text"]
        lang = request.form["lang"]
        print("passou")
    return speak.get_speak(text,lang)

if __name__ == "__main__":
    app.run()

Insomnia code 200 message

error on console log

【问题讨论】:

    标签: post flask get insomnia


    【解决方案1】:

    在下面试试这个:

    @app.route("/hello", methods=["GET","POST"])
    def hello():
        text = ''
        if request.method == "POST":
            text = request.form["text"]
            lang = request.form["lang"]
            print("passou")
            return speak.get_speak(text,lang)
    

    这是因为您的文本是在 if 条件内定义的,而您的 return 在 if 条件之外。你需要在 if 之上定义它并给它一个默认值。

    【讨论】:

    • 感谢您回复我。我尝试并解决了该错误,但现在将一个空字符串传递给 get_speak 函数,并通过打印进行一些调试,我知道它进入了 get_speak 函数但带有空变量。知道为什么它进入 if 条件(如果它不进入 if 条件,我相信它不会返回 get_speak 函数?)并且不分配表单值?我尝试将其更改为 JSON,将其更改为 GET 而不是 POST,并发生类似错误...
    • 我猜 request.form 有一些问题,你似乎没有从前端正确获取值!
    • 我刚刚构建了一个非常简单的前端模板,带有一个按钮来触发该功能,并且我正在使用 Insomnia 测试将数据发送到 Flask,如果您查看我原帖中的第一张图片,可以看到 200 消息,好像一切正​​常...
    • 尝试在 if 块中返回它。已编辑我的代码。
    • 这是我现在得到的:文件“/home/kajo/Desktop/TTS/TextToSpeech/server/venv/lib/python3.7/site-packages/flask/app.py”,行2097,在make_response“视图函数没有返回有效响应。”TypeError:视图函数没有返回有效响应。该函数要么返回 None,要么在没有 return 语句的情况下结束。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 2021-09-30
    相关资源
    最近更新 更多