我正在构建我的第一个 Flask 应用程序,并拥有以下带有路由的应用程序:
from flask import Flask, render_template, request
from dbConnect import get_config_tables
import pandas
app = Flask(__name__)
@app.route('/config', methods=["POST", "GET"])
def config_reader():
ID = request.form.get("ID")
inputID = 12036
result = get_config_tables(inputID)
df = result.head(10)
return render_template('config.html', inputID = ID, tables=[df.to_html(classes='data', header = "true")])
if __name__ == '__main__':
app.run(debug=True)
该函数get_config_tables是我编写的一个 python 函数,它与 SQL Server 通信并获取一些表。当我将函数硬编码inputID到get_config_tablesFlask 应用程序中按预期运行时,HTML 按预期打印到屏幕上。
但是,当我尝试传递值时,我得到了ID错误get_config_tables(ID)。我认为Flask 试图在传递 ID 值之前执行我的函数,但由于该函数需要输入值,因此在输入有效值之前它将失败。
有没有办法可以强制 Flask 等待执行该函数get_config_tables,直到单击提交事件按钮?
如果需要任何进一步的信息来更好地理解我的问题,我很乐意提供。
对应的 HTML 是:
{% extends "layout.html" %}
{% block body %}
<h6>
Get a config table
<br><br>
<form action = "{{url_for('config_reader')}}" method = "POST">
<input type = "text" name = "ID" placeholder = "Enter a confid ID">
<button> Submit </button>
You entered {{inputID}}.
<hline>
<br><br>
The results are:
<br>
</h6>
<small>
<center>
{% for table in tables %}
{{ table|safe }}
{% endfor %}
</center>
</small>
{% endblock %}
忽然笑
相关分类