【问题标题】:Not able to retrieve data from MySQL through flask无法通过烧瓶从 MySQL 检索数据
【发布时间】:2020-07-18 09:48:33
【问题描述】:

我正在制作一个烧瓶网站应用程序,我已经连接了一个 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>

【问题讨论】:

标签: python html python-3.x flask jinja2


【解决方案1】:

您正在将“数据”传递给您的模板,但您在 html 中使用 "datas"。要么通过"datas=datas"要么将html更改为{% for j in data %}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-17
    • 1970-01-01
    • 2013-07-14
    • 2020-10-27
    • 2021-11-04
    • 1970-01-01
    • 2021-12-23
    • 2019-09-25
    相关资源
    最近更新 更多