我正在尝试创建一个从 MySQL 数据库获取其值的下拉列表,这是 main.py 文件中的数据库代码
db = SQLAlchemy()
DB_NAME = "base.db"
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret'
app.config['SQLALCHEMY_DATABASE_URI']='mysql+pymysql://root:pass123@localhost/base'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
这是模型
class Vehicle(db.Model):
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
reg = db.Column(db.String(45), unique=True, nullable=False)
brand = db.Column(db.String(45), nullable=False)
color = db.Column(db.String(45))
下面也是html文件中的代码
<div class="dropdown" name= vehicle method="GET" action="/" align="center">
<button class="btn btn-primary btn-lg dropdown-toggle" type="button" data-toggle="dropdown" >Vehicles
<span class="caret"></span></button>
<ul class="dropdown-menu" >
{% for row in vehicle %}
<li>
<option value="{{row[0]}}">{{row[1]}}</option>
</li>
<li class="divider"></li>
{% endfor %}
</ul>
</div>
这是路线(我怀疑这是问题的根源)
@app.route('/')
def main():
cur = MySQL(db).connect.cursor()
cur.execute("SELECT * FROM Vehicle ORDER BY id")
vehicle = cur.fetchall()
return render_template('/', vehicle = vehicle)
下拉按钮在网页上显示正常,但是当我单击它时,会出现一个小的空白区域,这让我认为问题出在路由文件中,并且
vehicle = cur.fetchall()
是空的,即使我在数据库中添加了值
db 是 SQLAlchemy 对象, 尝试使用
vehicle = db.session.execute("SELECT * ...").fetchall()