首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
首页标签sqlalchemy

#sqlalchemy

Python 编程语言下的一款开源软件

在SQLAlchemy中将数据插入到多个关系中

首先,可以通过使用。 然后,为了不干涉SA所做的事情,我将保留这种关系: # here *tag_to_topic* is the relation Table object Topic.tags = relation('Tag', secondary=tag_to_topic) 我建议只创建一个简单的包装器属性,它完成将字符串列表转换为关系对象的工作(您可能会重命名关系)。标记类看起来类似于: class Topic(Base): __tablename__ = 'topic' id = Column(Integer, primary_key=True) # ... other properties def _find_or_create_tag(self, tag): q = Tag.query.filter_by(name=tag) t = q.first() if not(t): t = Tag(tag) return t def _get_tags(self): return [x.name for x in self.tags] def _set_tags(self, value): # clear the list first while self.tags: del self.tags[0] # add new tags for tag in value: self.tags.append(self._find_or_create_tag(tag)) str_tags = property(_get_tags, _set_tags, "Property str_tags is a simple wrapper for tags relation") 那么这段代码应该可以工作: # Test o = Topic() session.add(o) session.commit() o.str_tags = ['tag1'] o.str_tags = ['tag1', 'tag4'] session.commit()... 展开详请

SQLAlchemy:修改分离的对象的方法?

愤怒的白菜PostgreSQL DBA
def duplicate(self): arguments = dict() for name, column in self.__mapper__.columns.items(): if not (column.primary_key or column.unique): arguments[name] = getattr(self, name) return self.__class__(**arguments)... 展开详请
领券