我正在嘗試將資料從 Python / Flask 發送到 HTML 表單 textarea 但需要一些幫助。
responses.html如下圖所示。
{% extends "layout.html" %}
{% block title %}
Responses
{% endblock %}
{% block main %}
<form action="/responses" method="post">
<div class="mb-3">
<label for="response">Enter response here:</label><br>
<input class="form-control mx-auto w-auto" autocomplete="off" id="response" name="response" placeholder="Enter your response here" type="textarea">
</div>
<button class="btn btn-primary" type="submit">Submit</button>
</form>
{% endblock %}
一部分app.py如下圖:
@app.route("/responses", methods=["GET", "POST"])
@login_required
def responses():
"""Continue student application"""
if request.method == "GET":
user_id = session["user_id"]
# check for existing data to supply the template.
responses = db.execute(
"select * from extended_responses where user_id = ?",
user_id)
return render_template("responses.html", responses)
# User reached route via POST
if request.method == "POST":
user_id = session["user_id"]
# get form data
response = request.form.get("response")
# check if this is an update or new entry
responses = db.execute(
"select * from extended_responses where user_id = ?",
user_id)
if len(responses) > 0:
# update answers
db.execute("update extended_responses set user_id = ?, response = ? where user_id = ?", user_id, response, user_id)
else:
# insert answers
db.execute("INSERT INTO extended_responses (user_id, response) VALUES (?, ?)", user_id, response)
我想在未收到用戶之前的回應時,在保留占位符response textarea的同時顯示之前記錄的任何回應。responses.html
uj5u.com熱心網友回復:
我建議你用input標簽替換textarea標簽。然后你可以像這樣在 textarea 中添加回應(ps 你需要格式化回應,這個例子只會顯示 SQL 結果):
<form action="/responses" method="post">
<div class="mb-3">
<label for="response">Enter response here:</label><br>
<textarea
class="form-control mx-auto w-auto"
autocomplete="off"
id="response"
name="response" placeholder="Enter your response here"
>{{responses}}</textarea>
</div>
<button class="btn btn-primary" type="submit">Submit</button>
</form>
如果你仍然想使用input標簽(雖然輸入type='textarea'不是有效的 HTML 標簽,你應該切換到type='text')那么你應該添加value屬性,像這樣:
<input ... type="text" value="{{responses}}"/>
如果有任何回應,這兩種方法都將使用回應填充輸入/文本區域,否則,它將顯示一個占位符
另外,我注意到您在 SQL 代碼中有錯誤,您總是用最新的答案替換答案,這樣您在 DB 中只有一個答案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/493518.html
