我在一个Flask/Postgres应用程序上工作,遇到了一个我构建的下拉列表的问题-我不知道如何将下拉列表中的选定值存储到我的数据库中。请让我知道我错过了什么。我在网上搜索过,但大多数相关的答案都是关于PHP而不是Flask的。
这是我的酒瓶视图:
@app.route('/logworkout', methods=['POST'])
def post_log_workout():
try:
studio = (request.form.get['studio'])
instructor = (request.form.get['instructor'])
workout = Workout(studio=studio, instructor=instructor)
db.session.add(workout)
db.session.commit()
except:
return render_template("submit_workout.html", studio="", instructor="",
error="Error, your log is incomplete! Please check and submit it again!")
return render_template("submit_workout.html", studio=studio, instructor=instructor, error="")
这是HTML:
<form action="" method='post'>
<h3>2. Which Studio?</h3>
<select name='studio'>
<option value='Name1'>LongerName1</option>
<option value='Name2'>LongerName2</option>
<option value='Name3'>LongerName3</option>
</select>
<h3>2. Which Instructor?</h3>
<select name='instructor'>
<option value='Name1'>LongerName1</option>
<option value='Name2'>LongerName2</option>
<option value='Name3'>LongerName3</option>
</select>
<input type='submit' value='submit'>
</form>
你有几件事要改正。
首先,Flask视图应该同时包含GET和POST,我会将您的视图代码重新排列为:
您只需要在代码中使用一次render_模板。它的工作方式是当一个GET请求被触发时,即您第一次访问url/logworkout,表单将被显示,一旦输入并发布,然后将重定向到主页或任何地方。
在表单代码中,表单操作不应为空。您需要使用url_for()方法调用视图
改变这个
到
相关问题 更多 >
编程相关推荐