CMDB资产管理系统开发【day26】:CMDB上节回顾
一、上节知识点回顾
- 服务器设计了一个表结构
 - 开发了一个客户端
 
二、后台创建缓存区表
客户端连接服务器,在服务器的下面看报错信息

因为URL都没有写,所以我找不到呀
1、在MadKing\url.py 文件下加如下内容
url(r'^asset/',include(asset_urls)),
'''
你看我把所有的以asset开头的请求都转到了asset_urls下,为什么要这样做?
因为在项目开发的时候,有很多的项目是很多的组开发的,如果你把url写到全局
的话,每次更新都会改所有的url,全局有可能影响很多项目,为了不影响全局,
所以,每个app就单独写一个url
'''
2、在asset\url.py文件加如下内容:
url(r'report/asset_with_no_asset_id/$', views.asset_with_no_asset_id, name='acquire_asset_id'), '''
这个name是干什么用的?在模板语言里,如果你想取一个url的话,
你难道在模板里写report/asset_with_no_asset_id这个写死?
是一个变量应该这样写{%url 'acquire_asset_id'%}
'''
3、在asset\views.py文件加如下内容:
@csrf_exempt
def asset_with_no_asset_id(request):
if request.method == 'POST':
ass_handler = core.Asset(request)
res = ass_handler.get_asset_id_by_sn() # return render(request,'assets/acquire_asset_id_test.html',{'response':res})
return HttpResponse(json.dumps(res))
'''
客户端发过来的数据是post没错吧!
我没写试图里是不,因为客户端发送过来的数据是json格式
我把提取客户端数据的功能单独写了一个模块core.PY
'''
4、asset\core.py
class Asset(object):
def __init__(self, request):
'''
初始化,只要一实例化肯定会走,我在试图里调用的时候为什么先把 request传进去了呢?
因为客户端发过来的数据在request
'''
self.request = request
self.mandatory_fields = ['sn', 'asset_id', 'asset_type'] # must contains 'sn' , 'asset_id' and 'asset_type'
'''
mandatory_fields是什么意思?意思是必须的必要的
客户端回报数据我是不是要验证他的合法性,必须包裹这些字段
如果没有我就认为你是不合法的,我把'sn', 'asset_id', 'asset_type'作为必须字段
不能是from验证,为什么不能是from验证,因为我的数据提交过来的不是像网页那样的from表单数据
'''
self.field_sets = {
'asset': ['manufactory'],
'server': ['model', 'cpu_count', 'cpu_core_count', 'cpu_model', 'raid_type', 'os_type', 'os_distribution',
'os_release'],
'networkdevice': []
}
self.response = {
'error': [],
'info': [],
'warning': []
}
'''self.response返回数据,给用户返回的信息分别放到不同的列表里''' def get_asset_id_by_sn(self):
'''When the client first time reports it's data to Server,it doesn't know
it's asset id yet,so it will come to the server asks for the asset it first,then report the data again
当第一次数据汇报过来的时候,不知道自己的ID拿到资产ID再来汇报,当他没有资产ID的时候先过来问一下
''' def asset_with_no_asset_id(request):
if request.method == 'POST':
print(request.POST.get("asset_data"))
'''打印获取数据'''
ass_handler = core.Asset(request)
res = ass_handler.get_asset_id_by_sn() # return render(request,'assets/acquire_asset_id_test.html',{'response':res})
return HttpResponse(json.dumps(res))
获取客户端发来的数据
windows客户端发送收集的数据报错问题:

默认是通过@csrf_exempt这个装饰器验证,这是验证浏览器发送过来的数据,但是我们的数据不是浏览器发送的
所以我们改成不验证这个,
在MadKing\settings.py下加上ALLOWED_HOSTS = ['192.168.10.22',]
import os # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.9/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'p3l%y*#k*ung#9%s9srr65vwg1947s2e3h(2bcfi32jg8=f1u1' # SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True ALLOWED_HOSTS = ['192.168.10.22',]
里的allowed_host加入IP地址就没有问题了,是因为配置的时候是0.0.0.0访问的是192.168.10.22.改成一致就可以
再次运行手机数据成功

CMDB资产管理系统开发【day26】:CMDB上节回顾的更多相关文章
- CMDB资产管理系统开发【day26】:数据正式存入待存区
		
1.from表单提交 1.数据提交到哪里呢? 提交到assets/new_assets_approval.html这了 2.Yes, I'm sure提交了什么? 为什么没有下拉框了 ...
 - CMDB资产管理系统开发【day26】:admin action
		
本节目标 审核写到数据库,我就单独写一个如下的 页面 单机go后就跳转到如下图界面,我们这节课的目标就是写一个这样的页面 asset\admin.py部分代码 注释如下: class NewAsset ...
 - CMDB资产管理系统开发【day26】:实现资产自动更新
		
1.需求分析 1.比对分析 比对的时候以那个数据源为主? old [1,2,3 ] db数据库 new [2,3,4 ] 客户端汇报过来的 当然以客户端汇报过来的数据为主 2.更新分析 不同的表到底拿 ...
 - CMDB资产管理系统开发【day26】:批准资产入库
		
刚才都是一条像内存,硬盘,网卡.多条的话如何操作 只有一条数据 下面的是有多条数据的 硬盘必须字段的验证 def __create_disk_component(self): disk_info = ...
 - CMDB资产管理系统开发【day26】:linux客户端开发
		
客户端疑难点及获取流程 1.linux客户端支持2就可以,python3就是很麻烦 难道你要求所有的客户端都上pytho3吗? 现在从bin的入口进去 HouseStark.ArgvHandler(s ...
 - CMDB资产管理系统开发【day26】:Django admin
		
想实现的是一个表里面的字段 选择性的出现在菜单栏 1.如何自定义菜单 自定义菜单前 在asset\admin.py里添加如下代码: class NewAssetApprovalZoneAdmin(ad ...
 - CMDB资产管理系统开发【day26】:02-数据写入待存区
		
一.资产自动回报数据及个更新流程图 二.表结构注释(NewAssetApprovalZone) class NewAssetApprovalZone(models.Model): "&quo ...
 - CMDB资产管理系统开发【day25】:需求分析
		
本节内容 浅谈ITIL CMDB介绍 Django自定义用户认证 Restful 规范 资产管理功能开发 浅谈ITIL TIL即IT基础架构库(Information Technology Infra ...
 - CMDB资产管理系统开发【day25】:表结构设计1
		
资产表 # _*_coding:utf-8_*_ __author__ = 'jieli' from assets.myauth import UserProfile from django.db i ...
 
随机推荐
- 机器学习(四)正则化与过拟合问题 Regularization / The Problem of Overfitting
			
文章内容均来自斯坦福大学的Andrew Ng教授讲解的Machine Learning课程,本文是针对该课程的个人学习笔记,如有疏漏,请以原课程所讲述内容为准.感谢博主Rachel Zhang 的个人 ...
 - node.js应用--转载
			
最近,在向大学生们介绍 HTML5 的时候,我想要对他们进行问卷调查,并向他们显示实时更新的投票结果.鉴于此目的,我决定快速构建一个用于此目的的问卷调查应用程序.我想要一个简单的架构,不需要太多不同的 ...
 - HDU 2491 Priest John's Busiest Day(贪心)(2008 Asia Regional Beijing)
			
Description John is the only priest in his town. October 26th is the John's busiest day in a year be ...
 - 面试中要注意的 3 个 JavaScript 问题
			
JavaScript 是 所有现代浏览器 的官方语言.因此,各种语言的开发者面试中都会遇到 JavaScript 问题. 本文不讲最新的 JavaScript 库,通用开发实践,或任何新的 ES6 函 ...
 - Notes of the scrum meeting(12.9)
			
meeting time:14:00~17:00p.m.,December 9th,2013 meeting place:一号教学楼209 attendees: 顾育豪 ...
 - 福州大学软工1816 | K班 第一次作业
			
(一)回想一下你初入大学时对计算机专业的畅想 (1)当初你是如何做出选择计算机专业的决定的? 本身对于计算机感兴趣.高考完之后翻了书,对于物理数学等基础学科兴趣不大,对金融等商科几乎毫无了解,再加上当 ...
 - 数据库集群之路二 MYCAT
			
windows下安装配置并使用mycat 参考:http://www.cnblogs.com/parryyang/p/5758087.html 一 下载windows版本 https://github ...
 - 【.NET】- async await 异步编程
			
为什么需要异步,异步对可能起阻止作用的活动(例如,应用程序访问 Web 时)至关重要. 对 Web 资源的访问有时很慢或会延迟. 如果此类活动在同步过程中受阻,则整个应用程序必须等待. 在异步过程中, ...
 - asp.net mvc4使用log4.net 日志功能
			
对于网站来讲,不能把异常信息显示给用户,异常信息只能记录到日志,出了问题把日志文件发给开发人员,就能知道问题所在. 下面演示网站 出错后自动添加出错日志的实例 (1)新建一个WebApplicatio ...
 - Luogu4899 IOI2018狼人(kruskal重构树+主席树)
			
可以发现询问的即是“由起点开始‘只经过编号大于等于l的点’所形成的连通块”与“由终点开始‘只经过编号小于等于r的点’所形成的连通块”是否有交集.于是建出重构树,就可以知道每个询问的连通情况了.现在要知 ...