我有一個站點,用戶可以將消息發佈到牆上並回複評論線程中的消息。當提交評論表單時,我無法弄清楚如何將註釋與消息相關聯,以便將正確的message_id(外鍵)插入到數據庫的註釋表中。Flask,SQL,HTML:如何使用變量作爲INSERT語句的鍵
我有一個顯示來自數據庫的消息和評論for循環在我的HTML,和每個消息/評論組後,有一種形式,路線「/ post_comment」:
{% for message in messages %}
<div>
<h3>{{ message['first_name'] }} {{ message['last_name'] }}</h3>
<h3>{{ message['created_at'] }}</h3>
<p>{{ message['message'] }}</p>
{% for comment in comments %}
{% if message['message_id'] == comment['message_id'] %}
<p>{{ comment['comment'] }}</p>
{% endif %}
{% endfor %}
<form class="comments" action="/post_comment" method="POST">
<h4>Reply</h4>
<textarea id="post_comment" type="textarea" name="comment"></textarea>
<input class="submit" type="submit" value="Post">
</form>
</div>
{% endfor %}
和/ post_comment路線是這樣的:
@app.route('/post_comment', methods=['POST'])
def post_comment():
query = "INSERT INTO comments (user_id, message_id, comment, created_at, updated_at) VALUES (:user_id, :message_id, :comment, NOW(), NOW())"
data = {
'user_id': session['id'],
'message_id': 10, <<<<<<<<<<<<<<<<<<<<<<<<<<<< WHAT GOES HERE?
'comment': request.form['comment']
}
mysql.query_db(query, data)
return redirect('/wall')
這一切工作完全正常,但你可以看到,在/ post_comment路線我暫時硬編碼「MESSAGE_ID」作爲一個整數(10),所以每一個評論是被記錄爲對message_id 10的回覆。實際需要做的是在提交相關評論表單時,選擇前面的消息的message_id。
如何讓表單知道它屬於哪個消息,然後如何將這些信息傳遞給我的路由中的查詢?
對不起,這不是我要找的。 message_id已經存在,我只想知道它是什麼,所以我可以使用它。當我將消息回覆(評論)推送到評論表時,我想將評論與原始消息相關聯。換句話說,我只想檢索原始郵件的ID,以便我可以將其包含在我的INSERT語句中以用於回覆(評論) –
@KristaP抱歉!完全向後讀你的問題。你不能只是添加一個隱藏的輸入與message_id? – winterfruit