繁体   English   中英

无法使用 flask 将 MySQL 数据库中的数据检索到 html

[英]Not able to retrieve data from a MySQL database into html using flask

我正在制作一个 flask 网站应用程序,我已经连接了一个 MySQL 数据库,但我无法将数据放入我的 HTML 文件中。 数据应该显示在侧面导航中,但没有显示(空白)。 这样做的目的是避免对文本进行硬编码,以便我可以轻松地更新需要相同文本的页面。 任何更好的方法来实现相同的结果也将不胜感激。 任何帮助表示赞赏,谢谢

这些是我的导入和设置

from flask import Flask, render_template
from flask_mysqldb import MySQL


app = Flask(__name__)

app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSWORD'] = 'my_password_changed'
app.config['MYSQL_DB'] = 'swebsite'


mysql = MySQL(app)

这是试图检索数据的 function

@app.route('/menu/internships')
def internships():
    cur = mysql.connection.cursor()
    cur.execute("SELECT * FROM professional")
    fetchdata = cur.fetchall()
    cur.close()
    datas = {}
    # for j in fetchdata:
    datas['first'] = f"{fetchdata[0][1]}"
    datas['second'] = f"{fetchdata[1][1]}"
    datas['third'] = f"{fetchdata[2][1]}"
    datas['fourth'] = f"{fetchdata[3][1]}"

    print(datas)
    return render_template('internships.html', data = datas)

这是我尝试使用数据的地方

<div id="mySidenav" class="sidenav">
    {% for j in data %}

    <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a>
    <a href="{{url_for('professional')}}">{{j['first']}}</a>
    <a href="{{url_for('internships')}}">{{j['second']}}</a>
    <a href="{{url_for('projects')}}">{{j['third']}}</a>
    <a href="{{url_for('respon')}}">{{j['fourth']}}</a>

    {% endfor %}
</div>

假设您正确获取数据, datas是一个字典。 因此,html 中的 for 循环是不必要的。

你能试一试吗?

<div id="mySidenav" class="sidenav">
    <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a>
    <a href="{{url_for('professional')}}">{{data['first']}}</a>
    <a href="{{url_for('internships')}}">{{data['second']}}</a>
    <a href="{{url_for('projects')}}">{{data['third']}}</a>
    <a href="{{url_for('respon')}}">{{data['fourth']}}</a>
</div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM