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
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
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()
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))
def validate(self): if not len(self.token.split('.')) == 3: raise ParameterException( 'token应该包含 Header(头部).Payload(负载).Signature(签名)三个部分') return self
def validate(self): if self.indicator not in KpiFactory.options: raise ParameterException(msg=str(_("params error"))) return self