У меня есть база данных, и я смог опросить / отредактировать ее через терминал и простые запросы через 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, которые работают.