我正在制作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)
这是尝试检索数据的功能-数据正确打印
@app.route('/menu/internships')
def internships():
cur = mysql.connection.cursor()
cur.execute("SELECT * FROM professional")
fetchdata = cur.fetchall()
cur.close()
datas = []
for i in range(len(fetchdata)):
datas.append(fetchdata[i][1])
# print(datas)
return render_template('internships.html', data = datas)
这是我要使用数据的地方
<div id="mySidenav" class="sidenav">
{% for j in datas %}
<a href="javascript:void(0)" class="closebtn" onclick="closeNav()">×</a>
<a href="{{url_for('professional')}}">Organisational Experience</a>
<a href="{{url_for('internships')}}">{{j[0]}}</a>
<a href="{{url_for('projects')}}">Projects & Research</a>
<a href="{{url_for('respon')}}">Positions of Responsibility</a>
{% endfor %}
</div>
我已经更新了代码,再次在屏幕上什么也没打印
这是试图检索数据的功能
@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()">×</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>
答案 0 :(得分:0)
您正在将“数据”传递到模板,但是正在html中使用"datas"
。通过"datas=datas"
或将html更改为{% for j in data %}