安阳专业做网站公司_请及时收藏_十大erp系统_百度推广后台
from MusicStore.models import AccessTimeOutLogs,OpLogsclass OpLog(MiddlewareMixin):__exclude_urls = ['signin/','signup/','signout/'] def __init__(self, *args):super(OpLog, self).__init__(*args)self.start_time = None self.end_time = None self.data = {}def process_request(self, request):self.start_time = time.time()re_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')if x_forwarded_for:re_ip = x_forwarded_for.split(",")[0] else:re_ip = request.META.get('REMOTE_ADDR')re_method = request.methodre_content = request.GET if re_method == 'GET' else request.POSTif re_content:re_content = json.dumps(re_content) else:re_content = Noneself.data.update({'re_time' : re_time, 're_url' : request.path, 're_method' : re_method, 're_ip' : re_ip, 're_content': re_content, 're_user' : request.user.username, })def process_response(self, request, response):for url in self.__exclude_urls: if url in self.data.get('re_url'):return responserp_content = response.content.decode() self.data['rp_content'] = rp_contentself.end_time = time.time() access_time = self.end_time - self.start_timeself.data['access_time'] = round(access_time * 1000) if self.data.get('access_time') > 3 * 1000:AccessTimeOutLogs.objects.create(**self.data) OpLogs.objects.create(**self.data) return response">