2010-03-04 71 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