ValueError,即使其他代码逻辑相同
ValueError, even if the logic is the same with other codes
我对视图函数有疑问。我的其他代码工作正常并且具有相同的结构或逻辑。我只是想知道为什么在这种情况下,当逻辑与其余部分相同时它不起作用,而其余部分正常工作,这个却出错了。
# ########### POST answers ###############################
if request.method == 'POST':
if form.validate_on_submit():
answer = request.form['answer_text']
name = form.name.data
subject = request.form['hidden_sub']
flash('Homework posted for ' + str(subject) + "!")
try:
cur = mysql.connection.cursor()
sql = '''INSERT INTO answers (email, school, name, answer, subject)
VALUES (%s, %s, %s, %s, %s)'''
cur.execute(sql, (session['user'], session['school'], name, answer, subject))
mysql.connection.commit()
finally:
cur = mysql.connection.cursor()
cur.close()
return render_template('s_homework.html', user=session['user'], school=session['school'],
classes=classes, infos=infos, info_size=info_size, form=form)
HTML FORM:
<form method="POST" action="/s_homework/{{user}}/{{school}}/">
<input type="text" value="{{sub}}" style="visibility:hidden;" name="hidden_sub">
{{ wtf.form_field(form.name) }}
<label> Answer Form*</label>
<textarea class="form-control" name="answer_text" style="height:10em;"></textarea>
<p> </p>
{{ wtf.form_field(form.submit, class="btn btn-success",
style="position:relative; left:88%;") }}
</form>
问题一定是在
的情况下你有一个 return
if form.validate_on_submit():
但 "else" 案例(未涵盖)不是 return。使用 flask 函数,你总是需要 return 一些东西。您应该 return 模板,但 flash "Error with your form." 您的表单也可能有问题,但我无法从代码中看出这一点。
我对视图函数有疑问。我的其他代码工作正常并且具有相同的结构或逻辑。我只是想知道为什么在这种情况下,当逻辑与其余部分相同时它不起作用,而其余部分正常工作,这个却出错了。
# ########### POST answers ###############################
if request.method == 'POST':
if form.validate_on_submit():
answer = request.form['answer_text']
name = form.name.data
subject = request.form['hidden_sub']
flash('Homework posted for ' + str(subject) + "!")
try:
cur = mysql.connection.cursor()
sql = '''INSERT INTO answers (email, school, name, answer, subject)
VALUES (%s, %s, %s, %s, %s)'''
cur.execute(sql, (session['user'], session['school'], name, answer, subject))
mysql.connection.commit()
finally:
cur = mysql.connection.cursor()
cur.close()
return render_template('s_homework.html', user=session['user'], school=session['school'],
classes=classes, infos=infos, info_size=info_size, form=form)
HTML FORM:
<form method="POST" action="/s_homework/{{user}}/{{school}}/">
<input type="text" value="{{sub}}" style="visibility:hidden;" name="hidden_sub">
{{ wtf.form_field(form.name) }}
<label> Answer Form*</label>
<textarea class="form-control" name="answer_text" style="height:10em;"></textarea>
<p> </p>
{{ wtf.form_field(form.submit, class="btn btn-success",
style="position:relative; left:88%;") }}
</form>
问题一定是在
的情况下你有一个 return if form.validate_on_submit():
但 "else" 案例(未涵盖)不是 return。使用 flask 函数,你总是需要 return 一些东西。您应该 return 模板,但 flash "Error with your form." 您的表单也可能有问题,但我无法从代码中看出这一点。