示例#1
0
    def delete(self, log_id=None):
        log = Log.find_by_id(log_id)

        try:
            log.delete()
        except Exception as e:
            return max_res('', 500, 'The record has already deleted.')

        return max_res('The record has been deleted.')
示例#2
0
    def put(self, log_id=None):
        log = Log.find_by_id(log_id)

        args = log_update_parser.parse_args()

        log = update_all_fields(args, log)
        #可以在这里继续添加 需要更新的字段 如
        #    if args['name']:
        #       o.name = args['name']
        #

        db.session.commit()
        try:
            log.update()
        except Exception as e:
            return max_res('', 500, 'Failed to modify.')

        return max_res(marshal(log, log_fields))
示例#3
0
    def get(self, log_id=None):
        if log_id:
            log = Log.find_by_id(log_id)
            return max_res(marshal(log, log_fields))
        else:
            conditions = []

            args = log_query_parser.parse_args()
            page = args['page']
            per_page = args['pagesize']

            if args['orderby'] not in sortable_fields:
                return max_res('', code=500, errmsg='排序非法字段')
            sort = args['orderby']
            if args['desc'] > 0:
                sort = args['orderby'] + ' desc'

            conditions = make_conditions(conditions, args)
            # 在这里添加更多的 条件查询 例如
            # if args['name'] is not None:
            #       conditions.append(Log.name.like('%'+args['name']+'%'))

            if conditions is []:
                pagination = Log.query.order_by(text(sort)).paginate(
                    page, per_page, error_out=False)
            else:
                pagination = Log.query.filter(*conditions).order_by(
                    text(sort)).paginate(page, per_page, error_out=False)
            paginate = {
                'total': pagination.total,
                'pageSize': pagination.per_page,
                'current': pagination.page
            }
            print(pagination.items)

            return max_res(
                marshal(
                    {
                        'pagination': paginate,
                        'list':
                        [marshal(u, log_fields) for u in pagination.items]
                    }, log_list_fields))