Как исправить ошибку KeyError: 'MYSQL_DATABASE_SOCKET' в Flask? - PullRequest
1 голос
/ 14 января 2020

У меня есть приложение Flask, и я хочу подключить MYSQL базу данных и SELECT информацию из базы данных. Когда я запускаю свой код, я сталкиваюсь со следующей ошибкой:

KeyError: 'MYSQL_DATABASE_SOCKET

Мой код:

from flaskext.mysql import MySQL
import pymysql
from flask import render_template, redirect

app = Flask(__name__)
mysql = MySQL()

# MySQL configurations
app.config['MYSQL_DATABASE_USER'] = 'root'
app.config['MYSQL_DATABASE_PASSWORD'] = ''
app.config['MYSQL_DATABASE_DB'] = 'market_DB'
app.config['MYSQL_DATABASE_HOST'] = 'localhost'
app.config['MYSQL_DATABASE_PORT'] = '3306'
mysql.init_app(app)

@app.route('/')
def product():
    conn = mysql.connect()
    cursor = conn.cursor()
    #return "ok"
    cursor.execute("SELECT * FROM Tbl_product")
    productDetails= cursor.fetchall()
    return render_template('product.html', productDetails=productDetails)

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

Можете ли вы помочь мне?

Ответы [ 2 ]

1 голос
/ 16 января 2020

app.config ['MYSQL_DATABASE_SOCKET'] = нет

1 голос
/ 14 января 2020

Вы должны определить переменную MYSQL_DATABASE_SOCKET. В моем случае я использую класс Config, который выглядит следующим образом:

class Config(object):
    SECRET_KEY = os.environ.get('SECRET_KEY') or 'you-will-never-guess'
    MYSQL_DATABASE_USER = 'root'
    MYSQL_DATABASE_PASSWORD = 'root'
    MYSQL_DATABASE_DB = 'flask'
    MYSQL_DATABASE_HOST = 'localhost'
    MYSQL_DATABASE_SOCKET = '/tmp/mysql.sock'

, а затем передаю его в ваш объект приложения:

app = Flask(__name__)
app.config.from_object(Config)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...