Настройка Pyramid для использования MySQL raw вместо SQLAlchemy
Мы пытаемся настроить проект Pyramid, который будет использовать MySQL вместо SQLAlchemy.
Мой опыт работы с Pyramid/Python ограничен, поэтому я надеялся найти руководство онлайн. К сожалению, я не смог найти ничего, что подтолкнуло бы нас в правильном направлении. Большинство результатов поиска предназначались для людей, пытающихся использовать необработанные команды SQL/MySQL с SQLAlchemy (многие из них были повторно опубликованными ссылками).
У кого-нибудь есть полезное руководство по этому вопросу?
3 ответа
Пирамида в своей основе не предполагает, что вы будете использовать какую-то конкретную библиотеку, чтобы помочь вам с вашей настойчивостью. Чтобы упростить задачу, для людей, которые хотят использовать библиотеки, такие как SQLALchemy, библиотека Pyramid содержит Scaffolding, который представляет собой некий автоматически генерируемый код для базового сайта, с некоторыми дополнениями для настройки таких элементов, как SQLAlchemy или конкретная стратегия маршрутизации. Документация по пирамиде должна помочь вам создать новый проект с использованием скаффолдинга "pyramid_starter", который устанавливает базовый сайт без SQLAlchemy.
Это даст вам основы, необходимые для настройки ваших представлений, но затем вам нужно будет добавить код, позволяющий подключаться к базе данных. К счастью, поскольку ваш сайт - это всего лишь код Python, изучение того, как использовать MySQL в Pyramid, - это просто изучение того, как использовать MySQL в Python, а затем выполнение точно таких же шагов в рамках проекта Pyramid.
Имейте в виду, что даже если вы предпочитаете использовать необработанные запросы SQL, вы все равно можете найти некоторую полезность в SQLAlchemy. На базовом уровне SQLAlchemy просто оборачивает вызовы DBAPI и добавляет полезные функции, такие как пул соединений. Функциональность ORM на самом деле является большим дополнением к узкому низкоуровневому набору инструментов SQLAlchemy.
sqlalchemy не предполагает, что вы будете использовать его orm. Если вы хотите использовать простой sql, вы можете сделать это, не имея ничего, кроме того, что уже предоставляет sqlalchemy. Например, если вы следовали рецепту в кулинарной книге, у вас был бы доступ к объекту сеанса sqlalchemy как request.db
ваш обработчик будет выглядеть примерно так:
def someHandler(request):
rows = request.db.execute("SELECT * FROM foo").fetchall()
Краткое руководство показывает приложение Pyramid, которое использует SQL, но не SQLAlchemy. Он использует SQLite, но должен быть достаточно легко адаптируем для MySQL.