无法通过flask从MySQL检索数据

2024-04-29 08:24:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在制作一个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()">&times;</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()">&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>

Tags: 数据indivconfigappurlformysql