Sqlalchemy файловая организация - PullRequest
5 голосов
/ 04 марта 2010

Кто-нибудь имеет представление об организации проектов на основе sqlalchemy? У меня много таблиц и классов с внешними ключами и связями. Что каждый делает с точки зрения разделения классов, таблиц и картографов? Я относительно новичок в фреймворке, поэтому любая помощь будет оценена.

Пример:

classA.py # table definition and class A definition
classB.py # table definition and class B definition

### model.py
import classA,classB
map(classA.classA,clasSA.table)
map(classB.classB,clasSB.table)

Включение картографов в classA, и classB работает, но создает проблемы перекрестного импорта при построении отношений .. Может быть, я что-то упускаю :)

Ответы [ 2 ]

3 голосов
/ 04 марта 2010

Посмотрите на проект Pylons, включая настройку SA.

meta.py включает объекты движка и метаданных

модели пакет включает в себя деклективные классы (карта не требуется) Внутри этого пакета структурируйте свои классы по соотношениям в модули.

Может быть, хорошим примером будет исходный код Reddit:)

1 голос
/ 05 марта 2010

В дизайне SQLAlchemy есть две функции, позволяющие избежать перекрестного импорта при определении отношений:

  1. backref аргумент relation() позволяет определить обратную связь.
  2. Использование строк (класс модели и имена их полей). К сожалению, это работает только для декларативного, что не ваш случай.

См. эту главу в руководстве для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...