Проблемы с подключением к MySQL через Flask-MySQL - PullRequest
0 голосов
/ 14 апреля 2019

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

...