在我的HTML模板中,我已将以下<textarea>
添加到烧瓶中以进行循环:
{% for message in messageList %}
<form action="/comment/{{ message['id'] }}" method='POST' id='createComment{{ message["id"] }}'>
<textarea name='comment{{ message["id"] }}' id='comment{{ message["id"] }}' class='postComment'></textarea>
<button form='createComment{{ message["id"] }}' formaction="/comment/{{ message['id'] }}" formmethod='post' type='submit' class="ui-button ui-corner-all ui-widget createCommentButton">Post a comment</button>
</form>
{% endfor %}
将Flask与Python一起使用,我试图抓住动态生成的<textarea>
(在上面的示例中,如果id = 38
,则名称将显示为name="comment38"
)
我无法正确使用请求表单来获取此数据,任何人都可以提供帮助吗?
下面是我处理路线的Python代码:
@app.route('/comment/<id>', methods=["POST"])
def createComment(id):
query = 'INSERT INTO comments (message_id, user_id, comment, created_at, updated_at) VALUES (:message_id, :user_id, :comment, NOW(), NOW());'
data = {
'message_id' : id,
'user_id' : session['loggedInUser'],
'comment' : request.form["comment" & id]
}
mysql.query_db(query, data)
flash('Comment has been created!')
return redirect('/')
如上所示,有谁知道我应该如何在这种情况下适当地格式化request.form
?谢谢!
答案 0 :(得分:1)
应为request.form["comment" + id]
更好的是,避免关键错误:
request.form.get("comment" + id, 'oops, bad id')
答案 1 :(得分:0)
我通过创建一个新变量来解决这个问题:
form = request.form
并将我的字典值设置为:
'comment' : form["comment" + id]
[ EDIT ]我已经发誓我已经尝试了request.form['comment' + id]
,因为@GAEfan注意到了,但我无法让它工作(我必须要还有别的事情发生了,因为现在绝对正常工作!)接受了答案!