我拥有实时数据库,并且能够通过终端查询/编辑数据库,并可以通过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设置。