鍍金池/ 問(wèn)答/Python  C  數(shù)據(jù)庫(kù)  網(wǎng)絡(luò)安全  HTML/ 用Flask框架作兩個(gè)關(guān)聯(lián)式的下拉式選單,抓取資料庫(kù)資料

用Flask框架作兩個(gè)關(guān)聯(lián)式的下拉式選單,抓取資料庫(kù)資料

先前做好一個(gè)下拉式選單連結(jié)數(shù)據(jù)庫(kù),但是如果要作成雙關(guān)聯(lián)下拉式,選取好之后按鈕,再?gòu)臄?shù)據(jù)庫(kù)抓取數(shù)據(jù),卻一直沒(méi)辦法,數(shù)據(jù)庫(kù)如下:

ID Model_Name value_without time
0050 Multiple Regression 0.5781 13.03
0050 Logistic Regression 0.587 10.93
0051 Multiple Regression 0.5158 10.98
0051 Logistic Regression 0.572 10.16
0052 Multiple Regression 0.5734 14.67
0052 Logistic Regression 0.5396 12.42

當(dāng)前寫(xiě)好的Python:

class ETL(db.Model):
    tablename = 'etl1'
    ID = db.Column(db.Float)
    Model_Name = db.Column(db.String(255))
    value_without = db.Column(db.Float)
    time = db.Column(db.Float)

@app.route('/',  methods=['GET', 'POST'])
def index():
    etl1s = ETL.query.all()
    if 'eid' in request.form:
        eid = request.form.get('eid' ,type=float)
        step1 = ETL.query.get(eid)
        return render_template("index.html", etl1s=etl1s, step1=step1)
    return render_template("index.html", etl1s=etl1s)

HTML:

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>ETL_SQL</title>
</head>
<body>

<form method="POST">
    <select name="eid" id="eid">
        <option value="0050">0050</option>
        <option value="0051">0051</option>
        <option value="0052">0052</option>
    </select>
    <br>
    <input type="submit" value="Search" onClick="windows.location.reload()">
    <br>
</form>

{% if step1 %}
    <div>ID:{{step1.ID}}</div>
    <div>Model Name:{{step1.Model_Name}}</div>
    <div>Value Without:{{step1.value_without}}</div>
    <div>Time:{{step1.time}}</div>
{% endif %}
</body>
</html>

現(xiàn)在問(wèn)題想要作成兩個(gè)關(guān)聯(lián)式下拉式選單,也就是在網(wǎng)頁(yè)中讓使用者下拉式選擇欄位ID,再選擇Model_Name,然后按按鈕做確認(rèn),從數(shù)據(jù)庫(kù)抓取所選擇的ID、Model_Name、value_without及time欄位資料,那么在Python及HTML及要多加那些語(yǔ)法,懇請(qǐng)前輩們解法,謝謝。

回答
編輯回答
尛憇藌

仿照已有的再依葫蘆畫(huà)瓢一個(gè)model_name字段,
在查詢的時(shí)候這樣寫(xiě):
ETL.query.filter(db.and_(ETL.ID==eid, ETL.Model_Name==model_name))

2017年3月2日 17:49