Python 错误:没有';t返回HttpResponse对象。它没有返回任何结果
我想在html模板中按下一个按钮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>
<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)