mariadb 如何在Python Flask上从MySQL数据库获取数据?

htzpubme  于 2022-11-08  发布在  Python
关注(0)|答案(1)|浏览(184)

我正在学习Python Flask与MySQL工作台,我有一个数据库'books'和表'books.books_tb'在我的工作台.我做了一个简单的Flask应用程序与教程,它看起来像:

from flask import Flask
from flask_mysqldb import MySQL

@app.route('/books')
def home():
    def GetBookLink():
        mydb = mysql.connector.connect(
                    host='localhost',
                    user = 'root',
                    database = 'books'
                    )
        mycursor = mydb.mycursor()

        mycursor.execute("SELECT * FROM books.books_tb") 
        DBData = mycursor.fetchall() 
        mycursor.close()
        return DBData

    DBData = GetBookLink()
    return render_template("index.html", ScrapedBookData = DBData)

我的index.html看起来像这样:

{% extends "base.html"%} {% block title %}Home{% endblock %}{% block content %}    
<h1>{{ScrapedBookData}}</h1>
{% endblock %}

但是我得到了一个错误(链接在底部),作为一个新手,我不知道如何解决这个问题。我该如何解决这个问题,并编写一些查询来显示我的数据库中的行?
[在此处输入图像描述][1] [1]:https://i.stack.imgur.com/lZTGQ.png

gwo2fgha

gwo2fgha1#

first page of the documentation中,您缺少将MySQL类示例化为mysql变量的操作。

from flask import Flask
from flask_mysqldb import MySQL

app = Flask(__name__)
mysql = MySQL(app)  # this is the instantiation

@app.route('/')
def users():
    cur = mysql.connection.cursor()
    cur.execute('''SELECT user, host FROM mysql.user''')
    rv = cur.fetchall()
    return str(rv)

if __name__ == '__main__':
    app.run(debug=True)

相关问题