我希望我已经添加了找出代码错误所需的所有内容。当我在我的网站上工作时,我不断收到这个错误。根据回溯,我认为这个问题的根源在于simquestion = db.session.query(Tournamentsim.question).order_by(func.random()).limit(1)
和/或tts.save(file_location)
的views.py。当我使用'hello'
而不是simquestion
时,它可以工作。这就是为什么当我试图从Tournamentsim
那里得到一个问题时,我认为有问题。我一直在研究类似的问题,但似乎找不到答案。我希望我能找到一些帮助。代码如下:
Models.py
class Tournamentsim(db.Model):
id=db.Column(db.Integer, primary_key=True)
question=db.Column(db.String(1000))
answer=db.Column(db.String(500))
Views.py
@views.route('/test-yourself/tournament-simulator')
@login_required
def test_yourself_tournament_simulator():
generated_audio_filename = secrets.token_hex(10) + ".mp3"
simquestion = db.session.query(Tournamentsim.question).order_by(func.random()).limit(1)
tts = gTTS(simquestion, lang='en')
file_location = os.path.join(
app.config["AUDIO_FILE_UPLOAD"],
generated_audio_filename
)
tts.save(file_location)
return render_template(
"test-yourself/tournament-simulator.html",
title="Hello",
user=current_user,
audio=True,
file=generated_audio_filename
)
以下是回溯:
Traceback (most recent call last) (Part 1)
During handling of the above exception, another exception occurred: (Part 2)
1条答案
按热度按时间bkhjykvo1#
该问题是由于您没有传递请求的字符串,而是传递数据库查询作为一个整体。
要获得随机问题的文本,缺少关键字
first()
。您可以在这里没有限制,因为只请求了一个元素。但是,将返回一个包含问题文本的元组。因此,确切的查询如下所示。或者,您也可以使用以下表达式。
下面是这个简单示例的完整代码。
作为一个提示:
您也可以直接传送音频文件,而无需保存。