def report(request): if request.method == "POST": asset_data = request.POST.get('asset_data') data = json.loads(asset_data) if not data: return HttpResponse("没有数据!") if not issubclass(dict, type(data)): return HttpResponse("数据必须是字典格式!") sn = data.get('sn', None) if sn: #进入审批流程 #首先判断是否在上线资产中存在该sn asset_obj = models.Asset.objects.filter(sn=sn) if asset_obj: #进入已上线资产的更新流程 pass return HttpResponse("资产数据已经更新!") else: obj = asset_handler.NewAsset(request, data) response = obj.add_to_new_assets_zone() return HttpResponse(response) else: return HttpResponse("没有资产sn序列化,请检查数据") return HttpResponse("200 ok")
def report(request): """ 通过csrf_exempt装饰器,跳过Django的csrf安全机制,让post的数据能被接收,但这又会带来新的安全问题。 可以在客户端,使用自定义的认证token,进行身份验证。这部分工作,请根据实际情况,自己进行。 :param request: :return: """ if request.method == "POST": asset_data = request.POST.get('asset_data') data = json.loads(asset_data) print(asset_data) # 检测数据完整性 if not data: return HttpResponse("无数据提交!请重试!") if not issubclass(dict, type(data)): return HttpResponse("提交的数据必须是字典格式!") # 通过SN号判断该资产该干嘛 sn = data.get('sn', None) if sn: # 进入审批流程,判断是否是在线的资产 asset_obj = models.Asset.objects.filter(sn=sn) if asset_obj: # 如果是在线的SN,那么更新该资产的数据 update_asset = asset_handler.UpdateAsset(request, asset_obj[0], data) return HttpResponse("已更新资产数据!") else: # 如果不是在线的资产则新增资产 obj = asset_handler.NewAsset(request, data) response = obj.add_to_new_assets_zone() return HttpResponse(response) else: return HttpResponse("没有资产SN号,请查验数据完整性!") return HttpResponse('200 ok')
def report(request): """ 通过csrf_exempt装饰器,跳过Django的csrf安全机制,让post的数据能被接收,但这又会带来新的安全问题。 可以在客户端,使用自定义的认证token,进行身份验证。这部分工作,请根据实际情况,自己进行。 :param request: :return: """ if request.method == "POST": asset_data = request.POST.get('asset_data') data = json.loads(asset_data) # 各种数据检查,请自行添加和完善! if not data: return HttpResponse("没有数据!") if not issubclass(dict, type(data)): return HttpResponse("数据必须为字典格式!") # 是否携带了关键的sn号 sn = data.get('sn', None) if sn: # 进入审批流程 # 首先判断是否在上线资产中存在该sn asset_obj = models.Asset.objects.filter(sn=sn) if asset_obj: # 进入已上线资产的数据更新流程 update_asset = asset_handler.UpdateAsset( request, asset_obj[0], data) return HttpResponse("资产数据已经更新!") else: # 如果已上线资产中没有,那么说明是未批准资产,进入新资产待审批区,更新或者创建资产。 obj = asset_handler.NewAsset(request, data) response = obj.add_to_new_assets_zone() return HttpResponse(response) else: return HttpResponse("没有资产sn序列号,请检查数据!") return HttpResponse('200 ok')
def report(request): if request.method == "POST": asset_data = request.POST.get('asset_data') data = json.loads(asset_data) #数据检查 if not data: return HttpResponse("没有数据 !") if not issubclass(dict,type(data)): return HttpResponse('数据必须是字典格式!') sn = data.get('sn',None) if sn: # 进入审批流程 # 首先判断是否在上线资产中存在该sn asset_obj = models.Asset.objects.filter(sn=sn) if asset_obj: #进入已上线资产的数据更新流程 update_asset = asset_handler.UpdateAsset(request,asset_obj[0],data) return HttpResponse('资产数据已经更新') else: obj = asset_handler.NewAsset(request,data) respponse = obj.add_to_new_assets_zone() return HttpResponse(respponse) else: return HttpResponse('没有资产sn序列号,请检查数据') print(asset_data) return HttpResponse("成功收到数据!")
def report(request): if request.method == 'POST': asset_data = request.POST.get('asset_data') data = json.loads(asset_data) if not data: return HttpResponse('没有数据!') if not issubclass(dict, type(data)): return HttpResponse('数据必须为字典格式!') # 你的检测代码 sn = data.get('sn', None) if sn: asset_obj = models.Asset.objects.filter(sn=sn) # [obj] if asset_obj: update_asset = asset_handler.UpdateAsset( request, asset_obj[0], data) return HttpResponse('资产数据已经更新。') else: obj = asset_handler.NewAsset(request, data) response = obj.add_to_new_assets_zone() return HttpResponse(response) else: return HttpResponse('没有资产sn,请检查数据内容!') return HttpResponse('200 ok')
def report(request): """ 通过csrf_exempt 装饰器,跳过Django的csrf安全机制,让post的数据能够接收,但这又会带来安全问题。 可以再客户端,使用自定义认证token,进行身份验证,这部分工作,根据实际情况,自己进行 :param request: :return: """ if request.method == 'POST': asset_data = request.POST.get('asset_data') data = json.loads(asset_data) if not data: return HttpResponse('没有数据!') if not issubclass(dict, type(data)): return HttpResponse('数据必须是字典格式') sn = data.get('sn', None) if not sn: return HttpResponse('没有资产sn序列号,请检查数据!') else: # 进入审批流程 # 首先判断是否在上线资产存在该sn asset_obj = models.Asset.objects.filter(sn=sn) if asset_obj: update_asset = asset_handler.UpdateAsset( request, asset_obj[0], data) # 进入已经上线资产的数据更新流程 return HttpResponse('资产数据已更新!') else: obj = asset_handler.NewAsset(request, data) response = obj.add_to_new_assets_zone() return HttpResponse(response) return HttpResponse('200 ok')
def report(request): if request.method == 'POST': asset_data = request.POST.get('asset_data') data = json.loads(asset_data) if not data: return HttpResponse('没有数据!') if not issubclass(dict, type(data)): return HttpResponse('数据必须为字典格式!') # 你的检测代码 aud_sn = data.get('aud_sn', None) aud_asset_type = data.get('aud_asset_type', None) if aud_sn: asset_obj = models.Asset.objects.filter(sn=aud_sn) # [obj] # print("++++++++++++") if asset_obj: update_asset = asset_handler.UpdateAsset( request, asset_obj[0], data) return HttpResponse('资产数据已经更新。') else: # print("------------") obj = asset_handler.NewAsset(request, data) res = obj.add_to_new_assets_zone() if aud_asset_type == "server": response = obj.add_to_new_assets_zone_server() elif aud_asset_type == "securitydevice": response = obj.add_to_new_assets_zone_securitydevice() else: response = "N--------------N" return HttpResponse(response) else: return HttpResponse('没有资产sn,请检查数据内容!') return HttpResponse('200 ok')
def report(request): if request.method == "POST": asset_data = request.POST.get('asset_data') data = json.loads(asset_data) if not data: return HttpResponse("No Data") if not issubclass(dict, type(data)): return HttpResponse("Data type should be Dictionary") sn = data.get('sn', None) if sn: asset_obj = models.Asset.objects.filter(sn=sn) if asset_obj: update_asset = asset_handler.UpdateAsset( request, asset_obj[0], data) return HttpResponse("Asset info has been updated!") else: obj = asset_handler.NewAsset(request, data) response = obj.add_to_new_assets_zone() return HttpResponse(response) else: return HttpResponse( "Asset SN number not founded, Please check your data!") return HttpResponse('200 ok')
def report(request): if request.method == "POST": asset_data = request.POST.get('asset_data') data = json.loads(asset_data) # 各种数据检查,请自行添加和完善! if not data: return HttpResponse("没有数据!") if not issubclass(dict, type(data)): return HttpResponse("数据必须为字典格式!") # 是否携带了关键的sn号 sn = data.get('sn', None) if sn: # 进入审批流程 # 首先判断是否在上线资产中存在该sn asset_obj = models.Asset.objects.filter(sn=sn) if asset_obj: # 进入已上线资产的数据更新流程 update_asset = asset_handler.UpdateAsset(request, asset_obj[0], data) return HttpResponse("资产数据已经更新!") else: # 如果已上线资产中没有,那么说明是未批准资产,进入新资产待审批区,更新或者创建资产。 obj = asset_handler.NewAsset(request, data) response = obj.add_to_new_assets_zone() return HttpResponse(response) else: return HttpResponse('没有资产sn序列号, 请检查数据!') return HttpResponse('200 ok')
def report(request): if request.method == "POST": asset_data = request.POST.get("asset_data") # 取数据 data = json.loads(asset_data) if not data: return HttpResponse("没有数据!") if not issubclass(dict, type(data)): return HttpResponse("数据必须为字典格式!") sn = data.get("sn", None) if sn: asset_obj = models.Asset.objects.filter(sn=sn) if asset_obj: # 进入已上线资产的数据更新流程 update_asset = asset_handler.UpdateAsset( request, asset_obj[0], data) return HttpResponse("资产数据已更新!") else: obj = asset_handler.NewAsset(request, data) response = obj.add_to_new_assets_zone() return HttpResponse(response) else: return HttpResponse("没有资产sn序列号,请检查数据!") return HttpResponse('200 OK')
def report(request): if request.method == 'POST': asset_data = request.POST.get('asset_data') data = json.loads(asset_data) # print(asset_data) if not data: return HttpResponse("没有数据") if not issubclass(dict, type(data)): return HttpResponse("数据必须为字典格式!") sn = data.get('sn', None) if sn: # 判断是否已经有此资产 asset_obj = models.Asset.objects.filter(sn=sn) if asset_obj: # 数据更新 update_asset = asset_handler.UpdateAsset( request, asset_obj[0], data) return HttpResponse("资产数据已更新!") else: #没有则创建新资产 obj = asset_handler.NewAsset(request, data) response = obj.add_to_new_assets_zone() return HttpResponse(response) else: return HttpResponse("没有资产sn序列号,请检查数据") return HttpResponse('200 ok')
def report(request): if request.method == 'POST': asset_data = request.POST.get('asset_data') data = json.loads(asset_data) if not data: print('上报的数据为空') if not issubclass(dict,type(data)): print('数据必须为字典格式') sn = data.get('sn',None) if sn: asset_obj = models.Asset.objects.filter(sn=sn) if asset_obj: pass return HttpResponse('资产数据已更新') else: obj = asset_handler.NewAsset(data) response = obj.add_to_new_zone() return HttpResponse(response) else: return HttpResponse('没有资产序列号,请检查数据')
def report(request): if request.method == "POST": asset_data = request.POST.get('asset_data') data = json.loads(asset_data) if not data: return HttpResponse("没有数据!") if not issubclass(dict, type(data)): return HttpResponse("数据必须为字典格式!") sn = data.get('sn', None) if sn: asset_obj = models.Asset.objects.filter(sn=sn) if asset_obj: update_asset = asset_handler.UpdateAsset( request, asset_obj[0], data) return HttpResponse("资产数据已经更新!") else: obj = asset_handler.NewAsset(request, data) response = obj.add_to_new_assets_zone() return HttpResponse(response) else: return HttpResponse("没有资产SN序列号请检查数据!") return HttpResponse('200 ok')
def report(request): if request.method == "POST": asset_data = request.POST.get('asset_data') data = json.loads(asset_data) # print(asset_data) if not data: return HttpResponse('未收到数据...') if not issubclass(dict, type(data)): return HttpResponse('数据必须是字典格式...') sn = data.get('sn', None) if sn: asset_obj = models.Asset.objects.filter(sn=sn) print(asset_obj) if asset_obj: update_asset = asset_handler.UpdateAsset( request, asset_obj[0], data) return HttpResponse('数据已经更新...') else: obj = asset_handler.NewAsset(request, data) reponse = obj.add_to_new_asset_zone() return HttpResponse(reponse) else: return HttpResponse('没有资产序列,请检查...') return HttpResponse('200 ok! 成功收到数据!')
def report(request): if request.method == "POST": asset_data = request.POST.get('asset_data') data = json.loads(asset_data) if not data: return HttpResponse('数据接收为空') if not issubclass(dict, type(data)): return HttpResponse("数据必须为字典格式") #是否携带关键的sn好 sn = data.get('sn', None) if sn: asset_obj = models.Asset.objects.filter(sn=sn) if asset_obj: pass return HttpResponse("资产数据更新") else: obj = asset_handler.NewAsset(request, data) response = obj.add_to_new_assets_zone() return HttpResponse(response) else: return HttpResponse("没有资产SN号,请检查数据") return HttpResponse('服务器获取到数据!') return HttpResponse("200")
def asset_manage_new(request, asset_type): if request.method == "POST": # data = dict() # # general assets info # data["asset_type"] = asset_type # data["business_unit"] = request.POST.get("business_unit") # data["name"] = request.POST.get("name") # data["sn"] = request.POST.get("sn") # data["status"] = request.POST.get("status") # data["manufacturer"] = request.POST.get("manufacturer") # data["manage_ip"] = request.POST.get("manage_ip") # data["idc"] = request.POST.get("idc") # data["admin"] = request.POST.get("admin") # data["approved_by"] = request.POST.get("approved_by") # data["contract"] = request.POST.get("contract") # data["price"] = request.POST.get("price") # data["purchase_day"] = request.POST.get("purchase_day") # data["expire_day"] = request.POST.get("expire_day") # data["tags"] = request.POST.get("tags") # data["remark"] = request.POST.get("remark") # data = dict(request.POST.lists()) # request 的 POST、GET 属性都是 QueryDict 实例,lists() 是 QueryDict 的方法,格式与dict控件兼容,可以用于以字典的形式返回所有 POST 中的值,此处用于直接将request 的 form 表单中的所有值转换为字典类型 data = dict(request.POST.dict()) # lists() 转换为 dict 对象后,每一个item 的value 均为 list 类型;使用 dict() 方法 转换后的value 为 string 类型,但要对真实存在的list value 进行处理 # request.POST.dict() 处理 list 类型的 value时只返回 list的最后一个值,需要额外处理 tags = request.POST.getlist("tags") data["tags"] = tags # 各类别独有信息处理 obj = asset_handler.NewAsset(request, data) response = obj.add_to_new_assets_zone() created_by = request.POST.get("created_by") # 手动录入提交,成功返回资产列表,失败返回录入页面重新修改 if created_by == "manual": if response: assets = models.Asset.objects.filter(asset_type=asset_type) asset_list_page = "assets/manage/%s_list.html" % asset_type return render(request, asset_list_page, locals()) else: asset_manage_page = "assets/manage/%s_manage_new.html" % asset_type businessunit = models.BusinessUnit.objects.all() manufacturer = models.Manufacturer.objects.all() tags = models.Tag.objects.all() users = ['张三', '李四'] idcs = models.IDC.objects.all() contract = models.Contract.objects.all() return render(request, asset_manage_page, locals()) # 自动录入,即 client 传输过来的数据,直接返回 response,也即 True/False else: return HttpResponse(response) else: asset_manage_page = "assets/manage/%s_manage_new.html" % asset_type businessunit = models.BusinessUnit.objects.all() manufacturer = models.Manufacturer.objects.all() tags = models.Tag.objects.all() users = ['张三', '李四'] idcs = models.IDC.objects.all() contract = models.Contract.objects.all() return render(request, asset_manage_page, locals())