def make_cmd_data(request,device,stamp_key,stamp_val,rawData): ''' 构造内部定义POST命令头 保存到文件或者立即处理入库 ''' msg=None #---构造内部定义post命令请求头 stamp_name = STAMPS[stamp_key] stamp = stamp_val if stamp_name=='FPImage': head_data=":%s: SN=%s\tIP=%s\tTIME=%s\tPIN=%s\tFID=%s\tFPImage=%s\tZ=%s"%(stamp=='0' and stamp_name+'0' or stamp_name, str(device.sn).strip(), request.META["REMOTE_ADDR"], datetime.datetime.now(), request.REQUEST["PIN"], request.REQUEST.get("FID",0), request.REQUEST['FPImage'],stamp=='0' and '0' or '1') else: head_data=":%s: SN=%s\tIP=%s\tTIME=%s\tZ=%s"%(stamp_name, str(device.sn).strip(), request.META["REMOTE_ADDR"], datetime.datetime.now(),stamp=='0' and '0' or '1') try: s_data="%s\n%s\n\n"%(head_data, rawData) except: s_data="%s\n%s\n\n"%(head_data, rawData) if settings.WRITEDATA_CONNECTION>0 and not develop_model: try: obj="" try: from mysite.iclock.models.model_cmmdata import gen_device_cmmdata obj=gen_device_cmmdata(device,s_data) #---将整理后的POST数据保存到文件 except Exception, e: raise except Exception, e: import traceback; traceback.print_exc() return "save post data error\n" c=1
def cdata_post(request, device): ''' 处理设备的POST请求 涉及http参数: "raw_post_data"、stamp_name ''' raw_Data = request.raw_post_data if not raw_Data: raw_Data = request.META['raw_post_data'] logger.error(raw_Data) #---把post数据记录到日志 if settings.ENCRYPT: import lzo rawData = lzo.bufferDecrypt(raw_Data, device.sn)#---解密POST数据 else: rawData = raw_Data ######################### 新加入的请求 api 接口区 ###################### # # # 在此 return 返回给设备的数据 # # ########################## 新加入的请求 api 接口区 ###################### #---时间戳及其他POST数据的整理 stamp=None for s in STAMPS: stamp=request.REQUEST.get(s, None) if not (stamp is None): stamp_name=STAMPS[s] break if stamp is None: return "UNKNOWN" msg=None if stamp_name=='FPImage': head_data=":%s: SN=%s\tIP=%s\tTIME=%s\tPIN=%s\tFID=%s\tFPImage=%s"%(stamp_name, str(device.sn).strip(), request.META["REMOTE_ADDR"], datetime.datetime.now(), request.REQUEST["PIN"], request.REQUEST.get("FID",0), request.REQUEST['FPImage']) else: head_data=":%s: SN=%s\tIP=%s\tTIME=%s"%(stamp_name, str(device.sn).strip(), request.META["REMOTE_ADDR"], datetime.datetime.now()) try: s_data="%s\n%s\n\n"%(head_data, rawData) except: s_data="%s\n%s\n\n"%(head_data, rawData) #---将命令类型头基本信息和POST数据的保存到文件缓存队列 if settings.WRITEDATA_CONNECTION>0: #----写入到队列,后台进程在进行实际的数据库写入操作 try: obj="" try: from mysite.iclock.models.model_cmmdata import gen_device_cmmdata obj=gen_device_cmmdata(device,s_data) #---将整理后的POST数据保存到文件 except Exception, e: raise except Exception, e: import traceback; traceback.print_exc() raise c=1
def cdata_post(request, device): ''' 处理设备的POST请求 涉及http参数: "raw_post_data"、stamp_name ''' raw_Data = request.raw_post_data if not raw_Data: raw_Data = request.META['raw_post_data'] logger.error(raw_Data) #---把post数据记录到日志 if settings.ENCRYPT: import lzo rawData = lzo.bufferDecrypt(raw_Data, device.sn) #---解密POST数据 else: rawData = raw_Data ######################### 新加入的请求 api 接口区 ###################### # # # 在此 return 返回给设备的数据 # # ########################## 新加入的请求 api 接口区 ###################### #---时间戳及其他POST数据的整理 stamp = None for s in STAMPS: stamp = request.REQUEST.get(s, None) if not (stamp is None): stamp_name = STAMPS[s] break if stamp is None: return "UNKNOWN" msg = None if stamp_name == 'FPImage': head_data = ":%s: SN=%s\tIP=%s\tTIME=%s\tPIN=%s\tFID=%s\tFPImage=%s" % ( stamp_name, str(device.sn).strip(), request.META["REMOTE_ADDR"], datetime.datetime.now(), request.REQUEST["PIN"], request.REQUEST.get("FID", 0), request.REQUEST['FPImage']) else: head_data = ":%s: SN=%s\tIP=%s\tTIME=%s" % (stamp_name, str( device.sn).strip(), request.META["REMOTE_ADDR"], datetime.datetime.now()) try: s_data = "%s\n%s\n\n" % (head_data, rawData) except: s_data = "%s\n%s\n\n" % (head_data, rawData) #---将命令类型头基本信息和POST数据的保存到文件缓存队列 if settings.WRITEDATA_CONNECTION > 0: #----写入到队列,后台进程在进行实际的数据库写入操作 try: obj = "" try: from mysite.iclock.models.model_cmmdata import gen_device_cmmdata obj = gen_device_cmmdata(device, s_data) #---将整理后的POST数据保存到文件 except Exception, e: raise except Exception, e: import traceback traceback.print_exc() raise c = 1