mysql.connect () везде используется current_app
, поэтому вы должны вызывать его внутри контекста приложения.
Метод 1: временно выдвинуть контекст приложения
with app.app_context():
cur = mysql.connection.cursor()
Обычно вам не нужно создавать глобальный объект.Вместо этого вы можете создать cur
объект внутри функции просмотра.
Метод 2: вызвать его внутри функции просмотра
@app.route('/')
def users():
cur = mysql.connection.cursor()
cur.execute('''SELECT user, host FROM mysql.user''')
rv = cur.fetchall()
return str(rv)
Если у вас есть несколько функций просмотраиспользуя этот объект, вы можете создать обработчик запроса до его создания.
Метод 3: вызвать его в функции before_request
, затем вы можете получить доступ к cur
во всех функциях просмотра напрямую
@app.before_request
def make_db():
cur = mysql.connection.cursor()