Flask e SQLAlchemy e o objeto MetaData

é a primeira vez que estou usando esse ambiente.

A parte do SQLAlchemy que estou disposta a usar é justamente aquela que me permite consultar o banco de dados usando objetos Table com autoload = True. Eu estou fazendo isso como minhas tabelas já existem no banco de dados (servidor mysql) e não foram criadas pela definição de modelos de balão.

Eu passei por toda a documentação e não consigo encontrar uma resposta. Aqui está algum código:

app = Flask(__name__)
app.config.from_object(__name__)

metadata = None

def connect_db():
    engine = create_engine(app.config['DATABASE_URI'])
    global metadata
    metadata = MetaData(bind=engine)
    return engine.connect()


@app.before_request
def before_request():
    g.db = connect_db()


@app.teardown_request
def teardown_request(exception):
    g.db.close()

Agora você poderia estar se perguntando por que eu uso essa variável global chamada metadata. Ok, mais um código:

@app.route('/test/<int:id>')
def test(test_result_id):

    testTable = Table('test_table', metadata , autoload=True)

Como você pode ver, eu preciso que esse objeto seja global para acessá-lo de dentro de uma função.

Também estou declarando o mesmo testTable var em cada função que precisa dele. Tenho a sensação de que esta não é a abordagem correta. Eu não encontrei nenhum conselho de melhores práticas para um caso como o meu.

Obrigado a todos!

questionAnswers(1)

yourAnswerToTheQuestion