0

sqlalchemyを使用してファイルパスを保存しています。現時点では、これらは絶対パスとして保存されていますが、相対パスとして保存する必要があります。ただし、必要になるたびにパスをベースディレクトリに手動で結合する必要はありません。代わりに、オブジェクトにマップする前に自動的に結合する必要があります。このようにして、データベースにクエリを実行すると、相対パスが格納されていても、絶対パスが返されます。どうすればいいですか?マッパー構成?

4

1 に答える 1

3

考えられる解決策の 1 つ - 相対パスを絶対パスに変換するメソッドをマップされたクラスに追加します。このメソッドは、グローバル スコープ変数で定義できるルート ディレクトリ パスを知る必要があります。

global_base_path = "/home/user"

...

class Path(Base):
    ...
    relative_path = Column(String(2048))
    ...
    @property
    def absolute_path(self):
        return os.path.join(global_base_path,self.relative_path)


q = session.query(Path)
c = q.first()
print c.absolute_path
于 2013-01-23T16:55:21.137 に答える