def query_dataframe(cls, *conditions): query = session.query(cls).filter(*conditions) df = pd.read_sql(query.statement, session.bind) return df
def get_by(cls, *conditions): model = session.query(cls).filter(*conditions).one_or_none() return model
def query(cls, *conditions): models = session.query(cls).filter(*conditions).all() return models
def get(cls, _id): model = session.query(cls).filter(cls._id == _id).one_or_none() return model
def update_many(cls, *conditions, **set_op): session.query(cls).filter(*conditions).update(set_op) session.commit()
def get_by_episode_id(cls, episode_id): model = session.query(cls).filter( cls.episode_id == episode_id).one_or_none() return model
def distinct(cls, fields, *conditions): fields = [fields] if isinstance(fields, str) else fields exps = [getattr(cls, f) for f in fields] return session.query(cls).filter(*conditions).distinct(*exps).all()
def get_by_author_and_bangumi(cls, author_id, bangumi_id): model = session.query(cls).filter( cls.author_id == author_id, cls.bangumi_id == bangumi_id).one_or_none() return model
def get_by_bangumi_id(cls, bangumi_id): model = session.query(cls).filter( cls.bangumi_id == bangumi_id).one_or_none() return model
def get_by_name(cls, name): model = session.query(cls).filter(cls.name == name).one_or_none() return model
def get(cls, question_id): model = session.query(cls).filter( cls.question_id == question_id).one_or_none() return model
def get(cls, topic_id): model = session.query(cls).filter( cls.topic_id == topic_id).one_or_none() return model
def get(cls, article_id): model = session.query(cls).filter( cls.article_id == article_id).one_or_none() return model
def get(cls, answer_id): model = session.query(cls).filter( cls.answer_id == answer_id).one_or_none() return model