«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Вот несколько вариантов названия, учитывая формат вопроса и фокусируясь на основной проблеме: **Вариант 1 (прямой и краткий):** * **Как выполнять необработанные SQL-запросы в Flask-SQLAlchemy?** **Опт.

Вот несколько вариантов названия, учитывая формат вопроса и фокусируясь на основной проблеме: **Вариант 1 (прямой и краткий):** * **Как выполнять необработанные SQL-запросы в Flask-SQLAlchemy?** **Опт.

Опубликовано 4 ноября 2024 г.
Просматривать:493

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

Выполнение необработанного SQL в Flask-SQLAlchemy

При работе с Flask-SQLAlchemy вы можете столкнуться со сценарием, в котором вам необходимо выполнить необработанный SQL запросы. Эти запросы могут включать сложные соединения таблиц или встроенные представления. Первоначальный подход, продемонстрированный в вопросе с использованием Connection.execute(), может вызвать ошибки шлюза. Чтобы решить эту проблему, давайте рассмотрим рекомендуемые подходы в SQLAlchemy версий 1.x и 2.0.

SQLAlchemy 2.0

Чтобы выполнить необработанный SQL в SQLAlchemy 2.0, вы можете использовать метод engine.connect():

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

Используя контекстный менеджер engine.connect(), вы гарантируете, что соединение будет установлено и автоматически закрыто при выходе из контекста.

SQLAlchemy 1. x

В SQLAlchemy 1.x вы можете выполнять необработанный SQL, используя метод db.engine.execute() в сочетании с функцией 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)

Обратите внимание, что метод db.engine.execute() выполняет запросы «без установления соединения», то есть не устанавливает сеанс базы данных. Этот метод устарел в SQLAlchemy 2.0, и его следует избегать из соображений единообразия и лучших практик.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3