运行时错误:在请求上下文之外工作。 (蟒蛇烧瓶)

时间:2021-03-06 14:58:43

标签: python flask sqlalchemy request

Estoy usando Flask 和 SqlAlchemy,el caso es que tengo una base de datos principal y luego tengo varias bases de datos donde saco otro tipo de informacion。 Pero las credenciales no estan definidas como fijas,por lo que tengo que obtenerlas desde una tabla de la base de dato principal,dependiendo la planta en la que se encuentra el usuario。 顺便说一下 SQLALCHEMY_BINDS。 el problema es que cuando Into pasarle al Bind la cadena de conexion me dije que la funcion que la retorna se encuentra fuera de contexto。 Aqui una porcion del codigo

def scadaConnect():
    print("################################################")
    print("################################################")
    print("################################################")
    print("################################################")    
    idplanta_session=str(session['idPlanta'])
    usernamequery = db.session.query(Scada.usernameScada).filter(Scada.idPlanta=='5')
    hostquery = db.session.query(Scada.hostScada).filter(Scada.idPlanta=='5')
    passwordquery = db.session.query(Scada.passScada).filter(Scada.idPlanta=='5')
    nombredbquery = db.session.query(Scada.nombrebdScada).filter(Scada.idPlanta=='5')
    nombredb = str(nombredbquery[0])[2:len(nombredbquery[0])-4]
    host = str(hostquery[0])[2:len(hostquery[0])-4]
    password = str(passwordquery[0])[2:len(passwordquery[0])-4]
    username = str(usernamequery[0])[2:len(usernamequery[0])-4]
    connexion = 'mysql+pymysql://'+username+":"+password+"@"+host+"/"+nombredb+"'"
    def retorno():
        return str(connexion)    


from config import SQLALCHEMY_BINDS

SQLALCHEMY_BINDS['scada']= scadaConnect()

El error es el siguiente

<块引用>

运行时错误:在请求上下文之外工作。

这通常意味着您尝试使用以下功能 需要一个活动的 HTTP 请求。查阅有关测试的文档 有关如何避免此问题的信息。

1 个答案:

答案 0 :(得分:0)

您的代码必须从视图中调用,因此存在“请求上下文”。

你也应该看看官方文档:

https://flask.palletsprojects.com/en/1.1.x/reqcontext/

我很确定 stackoverflow 不允许非英文内容,您的问题很快就会结束。

不要射击信使,这不是我的主意。

相关问题