本节内容 浅谈ITIL CMDB介绍 Django自定义用户认证 Restful 规范 资产管理功能开发 浅谈ITIL TIL即IT基础架构库(Information Technology Infrastructure Library, ITIL,信息技术基础架构库)由英国政府部门CCTA(Central Computing and Telecommunications Agency)在20世纪80年代末制订,现由英国商务部OGC(Office of Government Commerce)负责…
官方文档:https://docs.djangoproject.com/en/1.10/topics/auth/customizing/#substituting-a-custom-user-model Django 自带的用户认证系统已经可以满足大部分的情况,但也可以进行自定义来满足某些特定的需求. Django 支持使用其他的认证系统.也可以扩展Django的User模块,还可以完全自定义新的认证模块. 定义用户认证模块,定义用户表的各个字段信息. 写在单独的文件中(官方是写在models.…
自定义一个用户认证 详细参考官方文档: https://docs.djangoproject.com/en/1.9/topics/auth/customizing/#django.contrib.auth.models.PermissionsMixin.has_perms 一.创建用户的表 UserProfile():存放用户信息的表 UserProfileManager(): 用户创建用户的类方法 1.生成一个单独的Moel文件专门用来存放用户表 #!/usr/bin/env python #…
参考文档:http://python.usyiyi.cn/django/topics/auth/customizing.html Django 自带的认证系统足够应付大多数情况,但你或许不打算使用现成的认证系统.定制自己的项目的权限系统需要了解哪些一些关键点,即Django中哪些部分是能够扩展或替换的.这个文档提供了如何定制权限系统的细节. "认证"后端 在以下情形时可被扩展:当一个 User 模型对象带有用户名和密码时,且需要有别于 Django 默认的认证功能. 你可为你的模型提供…
资产表 # _*_coding:utf-8_*_ __author__ = 'jieli' from assets.myauth import UserProfile from django.db import models class Asset(models.Model): asset_type_choices = ( ('server', u'服务器'), ('networkdevice', u'网络设备'), ('storagedevice', u'存储设备'), ('securityd…
表结构设计1详细注释代码 # _*_coding:utf-8_*_ __author__ = 'luoahong' from assets.myauth import UserProfile from django.db import models class Asset(models.Model): asset_type_choices = ( ('server', u'服务器'), ('networkdevice', u'网络设备'), ('storagedevice', u'存储设备'),…
1.目录结构 PS Y:\MadkingClient> tree /f 卷 netgame 的文件夹 PATH 列表 卷序列号为 ACE3-896E Y:. ├─bin │ NedStark.py │ __init__.py │ ├─conf │ │ settings.py │ │ __init__.py │ │ │ └─__pycache__ │ settings.cpython-35.pyc │ __init__.cpython-35.pyc │ ├─core │ │ api_token.p…
想实现的是一个表里面的字段 选择性的出现在菜单栏 1.如何自定义菜单 自定义菜单前 在asset\admin.py里添加如下代码: class NewAssetApprovalZoneAdmin(admin.ModelAdmin): list_display = ('sn','asset_type','manufactory','model','cpu_model','cpu_count','cpu_core_count','ram_size','os_distribution','os_rel…
一.上节知识点回顾 服务器设计了一个表结构 开发了一个客户端 二.后台创建缓存区表 客户端连接服务器,在服务器的下面看报错信息 因为URL都没有写,所以我找不到呀 1.在MadKing\url.py 文件下加如下内容 url(r'^asset/',include(asset_urls)), ''' 你看我把所有的以asset开头的请求都转到了asset_urls下,为什么要这样做? 因为在项目开发的时候,有很多的项目是很多的组开发的,如果你把url写到全局 的话,每次更新都会改所有的url,全局…
1.from表单提交 1.数据提交到哪里呢? 提交到assets/new_assets_approval.html这了 2.Yes, I'm sure提交了什么?          为什么没有下拉框了 ?是因为我隐藏了,获取的的是资产id号,但是显示的是sn号 代码如下: {% extends 'base.html' %} {% block page-container %} <div class="eq-height"> <div class="col-s…
理解RESTful架构 越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency).高并发等特点. 网站开发,完全可以采用软件开发的模式.但是传统上,软件和网络是两个不同的领域,很少有交集:软件开发主要针对单机环境,网络则主要研究系统之间的通信.互联网的兴起,使得这两个领域开始融合,现在我们必须考虑,如何开发在互联网环境中使用的软件. RESTful架构,就是目前最流行…
1.API验证分析 API三关验证 客户端和服务端中都存放一份相同的随机字符串,客户端发请求的时候把随机字符串和当前时间进行MD5加密,同时带着当前时间通过请求头发送到API,进入三关验证. 第一关是时间验证 (验证服务器当前时间和客户端发送过来的时间,超过10s后,验证不通过)第二关是MD5规则验证(服务端把自己的密钥同客户端发送过来的时间进行MD5加密,进行密文的比较)第三关是访问列表验证(从访问列表中查询是否存在,如果存在,验证不通过,否则把当前值存到列表中,并设置超时时间),这里的时间可…
一.资产自动回报数据及个更新流程图 二.表结构注释(NewAssetApprovalZone) class NewAssetApprovalZone(models.Model): """新资产待审批区""" sn = models.CharField(u'资产SN号', max_length=128, unique=True) ''' 必填的: 1.sn号 如果管理员不审批.客户端就会不停的回报,难道每次汇报一次往表里写一次?所以就用sn来进行区…
本节目标 审核写到数据库,我就单独写一个如下的 页面 单机go后就跳转到如下图界面,我们这节课的目标就是写一个这样的页面 asset\admin.py部分代码 注释如下: class NewAssetApprovalZoneAdmin(admin.ModelAdmin): list_display = ('sn','asset_type','manufactory','model','cpu_model','cpu_count','cpu_core_count','ram_size','os_d…
1.需求分析 1.比对分析 比对的时候以那个数据源为主? old [1,2,3 ] db数据库 new [2,3,4 ] 客户端汇报过来的 当然以客户端汇报过来的数据为主 2.更新分析 不同的表到底拿那个字段当做唯一值? old nic { n1 10.0.0.3 --> 192.168.3.22 #源数据里要拿那个字段去找 n2 172.168.10.2 n3 192.165.52.33 } sn:网卡没有sn ip一个客户端三个ip 都不靠谱,只有mac是唯一的地址, 拿新ip对应的mac地…
刚才都是一条像内存,硬盘,网卡.多条的话如何操作 只有一条数据 下面的是有多条数据的 硬盘必须字段的验证 def __create_disk_component(self): disk_info = self.clean_data.get('physical_disk_driver') if disk_info: for disk_item in disk_info: try: self.__verify_field(disk_item, 'slot', str) ''' 这里确实是验证了一个s…
客户端疑难点及获取流程 1.linux客户端支持2就可以,python3就是很麻烦 难道你要求所有的客户端都上pytho3吗? 现在从bin的入口进去 HouseStark.ArgvHandler(sys.argv) 2. core import HouseStark from core import HouseStark 3.class InfoCollection(object): def Linux(self): sys_info = plugin_api.LinuxSysInfo() r…
扩展已有的用户模型Extending the existing User model 有两种方法来扩展默认的User Model而不用重写自己的模型.如果你不需要改变存储在数据库中的字段,而只是需要改变Model的行为,您可以创建一个基于User的代理Model.允许的行为包括默认的ordering,custom managers, 或者 custom model methods. 如果你想存储与User有关的信息,可以使用一个OneToOneField字段关联到一个存储额外信息的Model.这…
参考资料:https://docs.djangoproject.com/en/1.10/topics/auth/customizing/    直接拉到最后看栗子啦 django自定义用户认证(使用自定义的UserProfile,而不是django自带的),就需要(django要求)将为UserProfile单独常见一个app,这个app啥也不干,就是为UserProfile而生的; 这里我们创建一个app,名字叫做Wolf,事实上,我们只需要对其中的models文件和admin.py做操作就可…
最近正好在给公司做CMDB资产管理系统,现在做的也差不多了,现在回头吧思路整理下. CMDB介绍 CMDB --Configuration Management Database 配置管理数据库, CMDB存储与管理企业IT架构中设备的各种配置信息,它与所有服务支持和服务交付流程都紧密相联,支持这些流程的运转.发挥配置信息的价值,同时依赖于相关流程保证数据的准确性. 在实际的项目中,CMDB常常被认为是构建其它ITIL流程的基础而优先考虑,ITIL项目的成败与是否成功建立CMDB有非常大的关系.…
1.在app下创建一个自己用户认证文件,文件名随意,记得为.py文件 2.编辑该userauth.py文件 #!/usr/bin/env python #coding:utf-8 from django.db import models from django.contrib.auth.models import ( BaseUserManager, AbstractBaseUser ) import django class UserManager(BaseUserManager): def…
一.Django的用户认证组件 用户认证 auth模块 在进行用户登陆验证的时候,如果是自己写代码,就必须要先查询数据库,看用户输入的用户名是否存在于数据库中: 如果用户存在于数据库中,然后再验证用户输入的密码,这样一来就要自己编写大量的代码. 事实上,Django已经提供了内置的用户认证功能. 在使用"python manage.py makemigrationss"和"python manage.py migrate"迁移完成数据库之后 根据配置文件settin…
深入一下Django的用户认证和cache 用户认证 首先明白一个概念,http协议是无状态的,也就是每一次交互都是独立的,那如何让服务器和客户端进行有状态的交互呢,现在较为常见的方法就是让客户端在发送请求的时候带上服务器给他的身份证(特定的cookie),以此来识别来访者的身份. 关于session和cookie 这两者的作用都是储存数据,以此方便服务器和客户端进行有状态的交互.然后cookie是确实存在于客户端的浏览器中,而session信息则是保持在服务器中,这两者之间的联系就是,这个se…
一.COOKIE 与 SESSION 1.简介 1.cookie不属于http协议范围,由于http协议无法保持状态,但实际情况,我们却又需要“保持状态”,因此cookie就是在这样一个场景下诞生. cookie的工作原理是:由服务器产生内容,浏览器收到请求后保存在本地:当浏览器再次访问时,浏览器会自动带上cookie,这样服务器就能通过cookie的内容来判断这个是“谁”了. 2.cookie虽然在一定程度上解决了“保持状态”的需求,但是由于cookie本身最大支持4096字节,以及cooki…
分页器(paginator) >>> from django.core.paginator import Paginator >>> objects = ['john', 'paul', 'george', 'ringo'] >>> p = Paginator(objects, 2) >>> p.count #数据总数 4 >>> p.num_pages #总页数 2 >>> type(p.page…
#models.py # ————————01PerfectCRM基本配置ADMIN———————— from django.db import models # Create your models here. """ #运行 Terminal # 生成 数据表 # python manage.py makemigrations # 数据表 迁移 # python manage.py migrate """ """…
一.用户认证组件 1.auth模块 from django.conrtrib import auth django.contrib.auth中提供了许多方法,这里主要介绍其中的三个: 1)authenticate() 它提供了用户认证,即验证用户名以及密码是否正确,一般需要username和password两个关键字参数.如果认证信息有效,会返回一个 User 对象.authenticate()会在User 对象上设置一个属性标识那种认证后端认证了该用户,且该信息在后面的登录过程中是需要的.当我…
考试第二部分:MySQL数据库 6.  MySQL中char和varchar的区别(1分) char是定长,varchar是变长. char的查询速度比varchar要快. 7.   MySQL中varchar(50)的50表示什什么意思?(1分) 是字符长度.一个中文,也是一个字符. 8. left join.right join以及inner join的区别?(2分) left join,表示左连接,以左表为基准,如果左表有不匹配的,显示为空 right join,表示右连接,以右表为基准,…
用户认证组件的学习 用户认证是通过取表单数据根数据库对应表存储的值做比对,比对成功就返回一个页面,不成功就重定向到登录页面.我们自己写的话当然也是可以的,只不过多写了几个视图,冗余代码多,当然我们也可以封装成函数,简单代码.不过推荐使用Django提供的一套用户认证组件,原理其实类似,只不过功能更强大. 1,用户认证——auth模块 在进行用户登录验证的时候,如果是自己写代码,就必须要先查询数据库,看用户输入的用户名是否存在于数据库中:如果用户存在于数据库中,然后在验证用户输入的密码,这样一来,…
用户认证组件 from django.contrib import auth 从auth_user表中获取对象,没有返回None,其中密码为密文,使用了加密算法 user = auth.authenticate(username=user, password=pwd) 让上边找到的user对象赋给request.user使其成为全局变量,方便以后调用 给已认证的用户附加上seession id 等信息 auth.login(request, user) # request.user:当前登录对象…