У меня есть база данных, с которой я использую sqlalchemy, которая включает в себя сохранение местоположения файлов.
У меня есть что-то вроде:
class FileLocation(ORMBase):
id = Column('id', Integer, primary_key=True)
filepath = Column('filepath', String)
, и я хочу добавить гибридные выражения папка и имя файла, соответствующие каждому пути к файлу. Конечно, это довольно легко сделать с обычными python строками, но я не могу найти способ сделать такую манипуляцию строками в выражениях sqlalchemy.
from sqlalchemy import func
class FileLocation(ORMBase):
id = Column('id', Integer, primary_key=True)
filepath = Column('filepath', String)
@hybrid_property
def folder(self):
return os.path.dirname(self.filepath)
@folder.expression
def folder(cls):
# How to get folder for sql queries???
last_pathsep_index = # ???
return func.substr(cls.filepath, 0, last_pathsep_index)
@hybrid_property
def filename(self):
return os.path.basename(self.filepath)
@filename.expression
def filename(cls):
# How to get filename for sql queries???
last_pathsep_index = # ???
return func.substr(cls.filepath, last_pathsep_index+1, func.len(cls.filepath))
Как бы я go о записи атрибутов @filename.expression
и @folder.expression
, которые в настоящее время отображаются с неполными реализациями?