通过Flask-MySQL连接到MySQL的问题

时间:2019-04-14 14:09:36

标签: python mysql flask pymysql flask-mysql

我拥有实时数据库,并且能够通过终端查询/编辑数据库,并可以通过PyMySQL进行简单查询。问题是当我尝试在Flask中显示数据库时,该数据库抛出以下错误:

MySQLdb._exceptions.OperationalError: (1049, "Unknown database 'RecipeBook'")

虽然在PyMySQL上运行正常,但在连接设置中可能出现了一些错误。 PyMySQL和Flask-MySQL是否都需要两个连接,还是有办法让它们共享连接?

import os
import pymysql
from flask import Flask, render_template, redirect, request, url_for
from flask_mysqldb import MySQL

app = Flask (__name__)

username = os.getenv('C9_USER')

app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = username
app.config['MYSQL_PASSWORD'] = ''
app.config['MYSQL_DB'] = 'RecipeBook'

mysql = MySQL(app)

@app.route('/')
def getLanding():
    cur = mysql.connection.cursor()
    cur.execute("SELECT * from USER")
    result = cur.fetchall()
    return render_template("landing_page.html", result=result)

@app.route('/login')
def getLogin():
    return render_template("login.html")

@app.route('/recipes')
def getRecipes():
    return render_template("recipes.html")

if __name__ == '__main__':
    app.run(host=os.environ.get('IP'),
        port=int(os.environ.get('PORT')),
        debug=True)

#connection = pymysql.connect(host='localhost',
#                            user=username,
#                            password='',
#                            db='RecipeBook')

我正在将cloud9用作我所遵循课程的IDE。

getLanding()函数是一项测试,以查看是否可以在Flask模板上显示我的数据库,但是在此之前失败了。在执行SQL查询之前,所有模板页面都可以使用。在代码底部注释掉了似乎可以使用的PyMySQL设置。

0 个答案:

没有答案