sqlalchemy-bind表中的烧瓶视图不起作用

时间:2019-07-03 21:28:12

标签: python mysql flask flask-sqlalchemy multiple-databases

我正在使用python 3.6.5,flask 1.0.2,flask-admin,flask-sqlalchemy

我无法显示第二个数据库的表视图,sqlalchemy绑定配置,模型数据库,模型视图,但似乎都没问题,但是该视图未在应用程序中显示,当我尝试强制其通过URL,出现权限消息。

我已经检查了绑定配置,当我注释该行时,出现预期的错误。

我还从主数据库的表中删除并添加了一些其他视图,所有这些工作都很好。

我尝试了多种方式来引用db.session:

db.session #like always
db.session(bind=['login'])
db.get_engine(app, 'login')

没有一个报告任何错误,但是视图不起作用。

SQLALCHEMY_BINDS配置:

SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://user:pass@localhost/radius'
SQLALCHEMY_BINDS = {
        'login': 'mysql+pymysql://user:pass@localhost/login_radisp'
}

db模型:

class Empleado(db.Model):
    __bind_key__ = 'login_radisp'
    __tablename__ = 'empleados'
    id_empleado = Column(INTEGER, primary_key=True)
    nombre = Column(String(255))
    apellido = Column(String(255))
    email = Column(String(255))

db模型视图

class EmpleadoAdmin(sqla.ModelView):
    column_labels = dict(
        nombre = 'Nombre',
        apellido = 'Apellido',
        telefono = 'Teléfono',
        email = 'Email'

创建应用构建器对象:

admin.add_view(EmpleadoAdmin(Empleado, db.session(bind=['login'])))

根本没有错误,但是视图未显示在应用程序中,当我尝试在URL中强制视图时,会出现下一条消息:

Forbidden

You don't have the permission to access the requested resource. It is either read-protected or not readable by the server.

1 个答案:

答案 0 :(得分:0)

这是数据库访问问题,而不是flask-admin问题。检查您的“ SQLALCHEMY_BINDS”访问权限