Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 错误:没有';t返回HttpResponse对象。它没有返回任何结果_Python_Django_Button - Fatal编程技术网

Python 错误:没有';t返回HttpResponse对象。它没有返回任何结果

Python 错误:没有';t返回HttpResponse对象。它没有返回任何结果,python,django,button,Python,Django,Button,我想在html模板中按下一个按钮 <form action="{% url 'speech2text' %}" class="card-text" method="POST"> {% csrf_token %} <button class="btn btn-primary btn-sm" type="submit">Start</button>

我想在html模板中按下一个按钮

              <form action="{% url 'speech2text' %}" class="card-text" method="POST">
                  {% csrf_token %}
                  <button class="btn btn-primary btn-sm" type="submit">Start</button>
              </form>

              <p> Sie haben das folgende gesagt: </p>
              <p> {{ speech_text }} </p>

这里怎么了?非常感谢您的帮助。

发生此错误是因为没有返回!似乎
返回render(请求'speech2text.html',args)
不起作用。尝试将
return render()
添加到带有
之外,如果出现相同的错误,请尝试将其添加到
请求之外。方法==“POST”:
。通过这种方式,您可以检查问题发生的位置。

尝试通过添加打印命令并在命令窗口中进行检查来检查上下文,如下所示

def speech2textView(request):
    if request.method == "POST":
        r = sr.Recognizer()
        with sr.Microphone() as source:
            audio = r.listen(source)
            text = r.recognize_google(audio, language="de-DE")
            args = {'speech_text': text}
            print(args)
            return render(request, 'speech2text.html', args)

如果您没有在命令窗口中看到数据,我认为问题出在识别步骤或请求步骤中,请继续跟踪打印一些数据,以查看代码在哪里卡住或失败。

我再次编辑了代码,现在代码正在工作。我想和大家分享一下。非常感谢这个社区

def speech2textView(request):
    args = {}
    if request.method == "POST":
        print(request.method)
        r = sr.Recognizer()
        with sr.Microphone() as source:
            audio = r.listen(source)
            text = r.recognize_google(audio, language="de-DE")
            args = {'speech_text': text}
    return render(request, 'speech2text.html', args)

看起来您是在用一个非POST的方法调用视图,在这种情况下,您的视图没有返回任何内容(因此实际上没有返回任何内容)。您的表单看起来不错。您应该使用
print()
检查
请求。方法
是否有值
“POST”
,以及
文本是否从google获得任何字符串。您还应该检查运行时是否没有任何错误。我假设您在本地计算机上运行django,因为服务器上的django无法访问您的本地麦克风。非常感谢您的支持。POST工作得很好,当我在python中运行它时,文本是正确的。麦克风的作用很好。你有什么建议?我需要在前端捕捉声音吗?识别器工作正常。我已经用python进行了测试。你对着麦克风说话,文本就会出现。我将return()语句移到了左侧,但随后出现了错误:“UnboundLocalError at/speech2text/,赋值前引用了局部变量'args'。另一个测试结果是:“POST”请求可以正常工作。单击按钮,将出现POST请求。从“使用高级麦克风”开始的代码中有错误。。。
def speech2textView(request):
    args = {}
    if request.method == "POST":
        print(request.method)
        r = sr.Recognizer()
        with sr.Microphone() as source:
            audio = r.listen(source)
            text = r.recognize_google(audio, language="de-DE")
            args = {'speech_text': text}
    return render(request, 'speech2text.html', args)