用Flask框架作两个关联式的下拉式选单,抓取资料库资料

Austin
  • 2
新手上路,请多包涵

先前做好一个下拉式选单连结数据库,但是如果要作成双关联下拉式,选取好之后按钮,再从数据库抓取数据,却一直没办法,数据库如下:

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

当前写好的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>

现在问题想要作成两个关联式下拉式选单,也就是在网页中让使用者下拉式选择栏位ID,再选择Model_Name,然后按按钮做确认,从数据库抓取所选择的ID、Model_Name、value_without及time栏位资料,那么在Python及HTML及要多加那些语法,恳请前辈们解法,谢谢。

回复
阅读 4.3k
1 个回答
勤奋的懒人
  • 727

仿照已有的再依葫芦画瓢一个model_name字段,
在查询的时候这样写:
ETL.query.filter(db.and_(ETL.ID==eid, ETL.Model_Name==model_name))

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏