Правильный способ установить соединение с базой данных в Python - PullRequest
3 голосов
/ 08 июня 2011

У меня есть скрипт с несколькими функциями, которые все должны выполнять вызовы из базы данных.Я пытаюсь лучше писать чистый код, а не просто собирать сценарии с ужасным стилем.То, что обычно считается лучшим способом установить глобальное соединение с базой данных, к которому можно получить доступ в любом месте скрипта, но не подвержено ошибкам, таким как случайное переопределение переменной, содержащей соединение.Я полагаю, я должен положить все в модуль?Любые ссылки на реальный код также будут очень полезны.Спасибо.

Ответы [ 2 ]

3 голосов
/ 08 июня 2011

Если вы работаете с Python и базами данных, вы не можете позволить себе не смотреть на SQLAlchemy :

SQLAlchemy - это набор инструментов Python SQL и объект реляционного картографа, который дает разработчикам приложений полный мощь и гибкость SQL.

Предоставляет полный набор хорошо известных модели персистентности на уровне предприятия, предназначен для эффективного и высокопроизводительный доступ к базе данных, адаптирован в простой и Pythonic язык домена.

Я создал очень сложные базы данных с удивительно небольшим объемом кода (несколько сотен строк). Определение схемы почти самодокументировано, объекты, используемые для реляционного сопоставления объектов, простые старые объекты Python (т. Е. То, что у вас уже есть), а API запросов почти очевиден. Кроме того, отличная документация: множество онлайн-примеров, полностью документированный API и книга О'Рейли, которая, хотя и далека от совершенства, за несколько вечеров поднимает вас с нуля до опасного.

Если вы не хотите использовать Object Relational Mapper, вы всегда можете вернуться к простым соединениям и буквальному SQL. Кроме того, код является переносимым и независимым от базы данных (тот же код будет работать с MySQL, Oracle, SQLite и другими менеджерами баз данных).

Объект Session автоматически позаботится о пуле (что вы называете своей заботой).

Лучший способ понять его силу - это, вероятно, следовать учебным пособиям, полученным на первой странице результатов запроса Google sqlalchemy tutorial.

0 голосов
/ 08 июня 2011

Использование модельной системы / системы ORM.

...