예제 #1
0
 def validate(self):
     if not self.data:
         raise ParameterException(detail=str(_("params error")))
     # 检查输入的二维列表为二维,且每个元素为int
     try:
         check = sum(not isinstance(__, int) for _ in self.data for __ in _)
     except TypeError:
         raise ParameterException(detail=str(_("data维度必须是二维列表")))
     if check:
         raise ParameterException(detail=str(_("data元素必须为int")))
     return self
예제 #2
0
def get_holding_stock_handler(**params):
    """
    获取持仓数据
    """
    df = _get_holding_stock(**params)
    asceding, order_column = params.get(
        'sort')[:1] == '+', params.get('sort')[1:]
    if df.empty:
        res = {
        'items': [],
        'total': 0
        }
        return res
    if order_column not in df.columns:
        raise ParameterException(detail='排序字段不在数据中:%s' % order_column)
    df.sort_values(order_column,
                   ascending=[asceding], inplace=True)
    df = df.reset_index()
    df['id'] = df.index
    data = df.to_dict('records')
    res = {
        'items': data,
        'total': df.shape[0]
    }
    return res
예제 #3
0
def session_logout(request):
    """
    Remove the authenticated user's ID from the request and flush their session
    data.
    """
    # Dispatch the signal before the user is logged out so the receivers have a
    # chance to find out *who* logged out.
    user = getattr(request, 'user', None)
    if not getattr(user, 'is_authenticated', True):
        user = None
    # user_logged_out.send(sender=user.__class__, request=request, user=user)
    # login check
    session_key = getattr(request.session, 'session_key', None)
    from django.contrib.sessions.models import Session
    try:
        session = Session.objects.get(session_key=session_key)
        assert getattr(session, 'pk')
    except Exception as e:
        logging.info(six.text_type(e))
        raise ParameterException(detail='Pls login in first!')
    """
    session.flush()和session.clear()就针对session的一级缓存的处理。

    简单的说,

    1 session.flush()的作用就是将session的缓存中的数据与数据库同步。

    2 session.clear()的作用就是清除session中的缓存数据(不管缓存与数据库的同步)。
    执行完session.flush()时,并不意味着数据就肯定持久化到数据库中的,因为事务控制着数据库,如果事务提交失败了,缓存中的数据还是照样会被回滚的。
    """
    request.session.flush()
    if hasattr(request, 'user'):
        from django.contrib.auth.models import AnonymousUser
        request.user = AnonymousUser()
예제 #4
0
def Percentile_check(field_value):
    from decimal import Decimal
    try:
        assert len(str(Decimal(field_value).quantize(Decimal('0.00')))) >= len(
            field_value), '两位小数检查,field_value:{field_value}'.format(
                field_value=field_value)
    except Exception as e:
        raise ParameterException(six.text_type(e))
예제 #5
0
 def validate(self):
     if not len(self.token.split('.')) == 3:
         raise ParameterException(
             'token应该包含 Header(头部).Payload(负载).Signature(签名)三个部分')
     return self
예제 #6
0
 def validate(self):
     if self.indicator not in KpiFactory.options:
         raise ParameterException(msg=str(_("params error")))
     return self