2010-03-04 123 views
3

有没有人对组织基于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工作,但提出了建立关系时,交进口问题..也许我失去了一些东西:)

回答

1

有在SQLAlchemy中设计两个特征定义关系时,以避免交叉进口:

  1. backrefrelation()参数允许您定义的回溯关系。
  2. 使用字符串(模型类和它们的字段名称)。不幸的是,这只适用于声明,这不是你的情况。

请参阅this chapter的教程了解更多信息。

+0

谢谢。今天我花时间重写我的代码,以使用声明式风格。这是要么,要么在所有类都加载完毕后定义所有的映射。 (这很丑陋)。 – 2010-03-05 07:16:54

1

看看塔项目包括SA设置。

meta.py包括发动机和元数据对象

模型包包括declerative类(不需要映射器)。在这个包里面,通过关联将模块结构化。

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

+1

@iElectric:您可能想要提供一个示例目录树来显示'models'包中的文件。 – 2010-03-04 11:28:09

+1

我检查了reddit的源代码,但他们在一个文件中定义了大多数模型代码(bidding.py)(对于由sqlaclhemy处理的部分)。一般来说,除了简单的一个文件定义之外,我很难找到示例。 – 2010-03-04 21:15:36