Sqlalchemy文件组织

时间:2010-03-04 07:36:43

标签: python sqlalchemy

有没有人对组织基于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 个答案:

答案 0 :(得分:2)

看看Pylons项目,包括SA设置。

meta.py 包含引擎和元数据对象

模型包中包含了必要的类(不需要映射器)。在该包中,通过重新分配到模块来构建您的类。

也许一个很好的例子是reddit源代码:)

答案 1 :(得分:1)

SQLAlchemy设计中有两个功能可以在定义关系时避免交叉导入:

  1. backref relation()参数允许您定义后向关系。
  2. 使用字符串(模型类及其字段名称)。不幸的是,这只适用于声明,这不是你的情况。
  3. 有关详细信息,请参阅教程中的this chapter