![](/img/trans.png)
[英]How to get the selected value from html select tag using Flask
[英]Flask how to specify a default value for select tag HTML
我有一個跟蹤卡車預約的應用程序。 在這個應用程序中,我在數據庫表中有一個運營商列表。 當用戶想要更新約會時,他們可以使用下拉菜單從數據庫中的運營商列表中選擇一個新的運營商。 如何將下拉列表默認值設置為當前運營商選擇?
到目前為止,這是我嘗試過的(沒有任何運氣):
應用程序.py:
class carriers_db(db.Model):
carrier_id = db.Column(db.Integer, primary_key=True)
carrier_name = db.Column(db.String(100), nullable=False)
class appts_db(db.Model):
id = db.Column(db.Integer, primary_key=True)
carrier = db.Column(db.String(100), nullable=False)
@app.route('/update/<int:id>', methods=['GET', 'POST'])
def update(id):
appt = appts_db.query.get_or_404(id)
carriers = carriers_db.query.order_by(carriers_db.carrier_name).all()
更新.html:
<h4>Current carrier: {{ appt.carrier }}</h4>
<label>Option to select a new carrier:</label><br>
<select name="carrier">
{% for carrier in carriers %}
<option
value = "{{ carrier.carrier_name }}"
selected = "{{ carrier.carrier_name }}">
{{ carrier.carrier_name }}</option>
{% endfor %}
</select>
您可以在update.html
的 for 循環中添加檢查值是否等於所選值:
更新.html :
<h4>Current carrier: {{ appt.carrier }}</h4>
<label>Option to select a new carrier:</label><br>
<select name="carrier">
{% for carrier in carriers %}
<option
value = "{{ carrier.carrier_name }}"
{% if carrier.carrier_name == appt.carrier %} selected {% endif %}>
{{ carrier.carrier_name }}</option>
{% endfor %}
</select>
在 Jinja 模板中顯示所選選項值的完整示例:
app.py
:
from flask import Flask, render_template, flash, url_for, request, redirect
app = Flask(__name__)
app.secret_key = b'a secret key'
@app.route('/update', methods=['GET', 'POST'])
def show_update():
current_carrier = "tello"
carriers = [{"carrier_name": "mint"},
{"carrier_name": "tmobile"},
{"carrier_name": "tello"}]
return render_template('update.html', current_carrier=current_carrier,
carriers=carriers)
update.html
:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Update page</title>
</head>
<body>
<h4>Current carrier: {{ current_carrier }}</h4>
<label>Option to select a new carrier:</label><br>
<select name="carrier">
{% for carrier in carriers %}
<option value="{{ carrier.carrier_name }}" {% if carrier.carrier_name== current_carrier %} selected {% endif %}>
{{ carrier.carrier_name }}
</option>
{% endfor %}
</select>
</body>
</html>
Output:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.