db_info.py 文件源码

python
阅读 24 收藏 0 点赞 0 评论 0

项目:Qkou_kit 作者: pddg 项目源码 文件源码
def add_info(subject, teacher, week, period, abstract, detail, first, update, unique_hash, renew_hash):
    session = models.Session()
    qkou = session.query(models.Info)
    # utf-8?????????????
    subject = subject.encode('utf-8')
    teacher = teacher.encode('utf-8')
    week = week.encode('utf-8')
    period = period.encode('utf-8')
    abstract = abstract.encode('utf-8')
    detail = detail.encode('utf-8')
    first = first.encode('utf-8')
    update = update.encode('utf-8')
    unique_hash = unique_hash.encode('utf-8')
    renew_hash = renew_hash.encode('utf-8')
    newinfo = models.Info(
        subject, teacher, week, period, abstract, detail, first, update, unique_hash, renew_hash, now)
    try:
        # ?????????
        ex_info = qkou.filter(models.Info.unique_hash == unique_hash).first()
        if ex_info is None:
            # ?????
            log.debug('???: %s … [??]', subject)
            session.add(newinfo)
            session.commit()
            new_id = newinfo.id
            return new_id
        else:
            # ????????
            if ex_info.renew_hash != renew_hash:
                log.debug('???: %s … [??]', subject)
                ex_info.detail = detail
                ex_info.up_date = update
                ex_info.renew_hash = renew_hash
                ex_info.up_time = now
                session.commit()
                ex_id = ex_info.id
                return ex_id
            else:
                # ???????
                log.debug('???: %s … [??]', subject)
                ex_info.up_time = now
                session.commit()
                return False
    except Exception as e:
        session.rollback()
        log.exception(e)
        return False
    finally:
        session.close()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号