"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Aqui estão algumas opções de títulos, tendo em mente o formato da pergunta e focando na questão central: **Opção 1 (direto e conciso):** * **Como executar consultas SQL brutas no Flask-SQLAlchemy?** **Optar

Aqui estão algumas opções de títulos, tendo em mente o formato da pergunta e focando na questão central: **Opção 1 (direto e conciso):** * **Como executar consultas SQL brutas no Flask-SQLAlchemy?** **Optar

Publicado em 2024-11-04
Navegar:648

Here are a few title options, keeping in mind the question format and focusing on the core issue:

**Option 1 (Direct and concise):**

* **How to Execute Raw SQL Queries in Flask-SQLAlchemy?** 

**Option 2 (Highlighting the  difference between 1.x and 2.0

Executando SQL bruto no Flask-SQLAlchemy

Ao trabalhar com Flask-SQLAlchemy, você pode encontrar um cenário em que precisa executar SQL bruto consultas. Essas consultas podem envolver junções de tabelas complexas ou visualizações embutidas. A abordagem inicial demonstrada na pergunta usando connection.execute() pode desencadear erros de gateway. Para resolver esse problema, vamos explorar as abordagens recomendadas nas versões 1.xe 2.0 do SQLAlchemy.

SQLAlchemy 2.0

Para executar SQL bruto no SQLAlchemy 2.0, você pode aproveitar o método engine.connect():

with engine.connect() as connection:
    result = connection.execute(text('SELECT * FROM your_table'))
    # Perform operations on the result

Ao utilizar o gerenciador de contexto engine.connect(), você garante que a conexão seja estabelecida e fechada automaticamente ao sair do contexto.

SQLAlchemy 1. x

No SQLAlchemy 1.x, você pode executar SQL bruto usando o método db.engine.execute() em conjunto com a função text():

from sqlalchemy import text

sql = text('select name from penguins')
result = db.engine.execute(sql)
names = [row[0] for row in result]
print(names)

Observe que o método db.engine.execute() executa consultas "sem conexão", o que significa que não estabelece uma sessão de banco de dados. Este método está obsoleto no SQLAlchemy 2.0 e deve ser evitado para consistência e práticas recomendadas.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3