0

我正在使用 sqlalchemy 存储文件路径。目前这些存储为绝对路径,但我需要将它们存储为相对路径。但是,我不想每次需要时都手动将路径与基目录连接起来,而是应该在它们映射到对象之前自动完成。这样,每当我查询数据库时,我都会得到一个绝对路径,即使它们是相对存储的。我该怎么做?映射器配置?

4

1 回答 1

3

一种可能的解决方案 - 将方法添加到映射类中,将相对路径转换为绝对路径。此方法需要知道根目录路径 - 可以由全局范围变量定义。

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 回答