python - 如何将flask_mysqldb与蓝图一起使用
问题描述
我正在使用带有蓝图的 flask_mysqldb,我想初始化 MySQL,但我有一个错误:
app.config.setdefault('MYSQL_HOST', 'localhost') AttributeError: 'Blueprint' 对象没有属性 'config'
我在这里创建应用程序
from flask import Flask
from flask_cors import CORS
from .bodega import bodega
def create_app():
app = Flask(__name__)
cors = CORS(app, resources=r'/*')
app.config['MYSQL_HOST'] = "localhost"
app.config['MYSQL_USER'] = "root" # Usuario de la base de datos
app.config['MYSQL_PASSWORD'] = "" # Contraseña de la base de datos
app.config['MYSQL_DB'] = "inventario_bodega" # Nombre de la base de datos
app.config['SECRET_KEY'] = 'thisisthesecrectkey_de_uepc_2019'
# app.config.from_object(Config)
app.register_blueprint(bodega)
return app
那是我的蓝图
from flask import Blueprint
bodega = Blueprint("bodega", __name__, url_prefix="/bodega")
from . import views
在这里我想使用 MySQL
from flask import jsonify
from datetime import datetime
from . import bodega
from flask_mysqldb import MySQL
# the error is here
mysql = MySQL(bodega)
@bodega.route('/show', methods=['GET'])
def show_bodega():
try:
cur = mysql.connection.cursor()
cur.execute(
"""SELECT * FROM bodega
join item on bodega.id_item = item.id_item
join usuarios on bodega.id_usuario = usuarios.id_usuario
join images on bodega.id_image = images.id_image"""
)
data = cur.fetchall()
cur.close()
return jsonify(data), 202
except:
return "Error al extraer datos", 500
应用程序要求我将配置传递给蓝图,但我不知道如何
解决方案
问题在以下行
mysql = MySQL(bodega)
相反,您应该将 app 传递给MySQL
app = create_app()
mysql = MySQL(app)
推荐阅读
- c# - 获取“响应状态代码不表示成功:500(内部服务器错误)”错误
- java - 将对象投射到任何接口中?
- javascript - 使用 jquery 悬停时隐藏和显示弹出窗口
- php - magento2 将表单保存到 core_config_data
- wordpress - 本地主机上的 Wordpress (MAMP):站点仅加载文本,所有链接均已断开
- android - 在 Parse Server 中过滤“AND”
- python - 熊猫数据框:按年绘制条形图
- reactjs - URL axios post方法中使用id如何反应?
- python - 如何增加一个值(在 defaultdicts 的 defaultdict 中)?
- c# - 当用户添加换行符时,正则表达式 .*\w.* 不起作用