Python
文章平均质量分 72
小恩阿
这个作者很懒,什么都没留下…
展开
-
[Python/自动化运维] 利用Paramiko模块执行批量上传/下载/执行命令/查看服务器列表
大家好,今天给大家分享一下 自己凌晨写的一个自动化脚本,虽然中间有很多笨方法实现的,但是最终也是实现了 自己需要的功能,废话不多说代码入下:#!/usr/bin/env python# -*- coding: utf-8 -*-# Used to perform some remote commands# View host group# Upload file # Execute rem原创 2017-05-11 05:34:09 · 1297 阅读 · 0 评论 -
Django入门二之 (ORM)
ORM(Object Relation Mapping) 对象关系映射Django对数据库进行了一层抽象,把数据库抽象成了一些模型数据库配置: setting.py DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 数据库引擎 'NAME': 'cms_z...原创 2018-11-27 21:13:53 · 172 阅读 · 0 评论 -
Django入门三之 (Template)
Django模版模版默认在每一个app下templates目录下寻找;可以在setting里面的templates下dirs自定义路径from django.shortcuts import render,render_to_responsefrom django import template from django.template.loader import get_templa...原创 2018-11-27 21:11:07 · 157 阅读 · 0 评论 -
django rest framework 定义多级路由
1、定义路由 url.py#比如我们要传递多层路由http://www.baidu.com/hosts/{ID}/detail/router = DefaultRouter()router.register('hosts',views.ServerView,basename="server_base")urlpatterns = [ path('v1/',include(rout...原创 2018-11-20 11:02:03 · 1575 阅读 · 0 评论 -
django rest framework 自定义过滤器
默认的django rest framework是没有过滤器的,他的查找是基于id去查找,但是通常大多数的需求是我们需要进行过滤比如htttp:///www.igolang.cn/api/v1/hosts?name=liran&ip=1.1.1.1这就是进行所有数据的过滤,下面跟大家分享相关的django 插件1、安装相关过滤模块pip install django-filter2...原创 2018-11-20 10:57:35 · 1514 阅读 · 1 评论 -
django rest framework 自定义分页返回信息
这一章给大家讲解如何自定义分页的返回信息1、settings.py 定义自定义返回信息的脚本位置#settings.conf REST_FRAMEWORK = { 'DEFAULT_PAGINATION_CLASS': 'common.utils.custom_pagination.LargeResultsSetPagination', 'PAGE_SIZE': 20, #...原创 2018-11-20 10:50:33 · 1617 阅读 · 0 评论 -
django rest framework 自定义异常返回
上一节给大家介绍了自定义Response返回信息,但那个只用于正确的返回success,但是当我们用到了权限auth 401、方法不允许method 405,等等,这时候我们就用自己自定义异常返回信息1、定义settings配置文件#定义异常返回的路径脚本位置REST_FRAMEWORK = { 'EXCEPTION_HANDLER': 'common.utils.custom...原创 2018-11-20 10:46:00 · 3119 阅读 · 0 评论 -
django rest framework 自定义返回
大家在用Django Rest Framework的时候会发现默认继承后,增删改查的返回信息都是一段data,这是因为我实际是状态码和信息你在调用api的时候是看不到的,仅仅如此么?并不是这样,在我前端调用后端的时候,实际上相关的code和msg是能看得到的,但是我们在普通的调用api他只是单单的返回data信息,这个是不够我们满足需求的,毕竟我们不仅仅需要用前端需调用,下面我们来自定义Respo...原创 2018-11-20 10:38:37 · 7662 阅读 · 5 评论 -
python读取excel进行遍历/xlrd模块
#!/usr/bin/env python# -*- coding: utf-8 -*-import csvimport xlrdimport xlwtdef handler_excel(filename=r'/Users/zongyang.yu/horizon/ops_platform/assets/upload/1.xlsl'): # 打开文件 workbook...原创 2018-11-20 16:47:12 · 12839 阅读 · 0 评论 -
Django入门四之 (HttpResponse HttpRequest)
HttpResponse HttpRequestsHttpRequest和HttpResponse 是定义的两个类,HttpRequests里面存有客户端发送过来的数据,HttpResponse是服务器发送给客户的响应,所有view函数必须返回HttpResponse对象:1: HttpRequest: requests.scheme 网络请求协议 requests....原创 2018-11-27 21:15:58 · 511 阅读 · 0 评论 -
Django入门五之 (Session Cookie)
Cookie && Sessionhttp 是无状态的,每一次发送过来依旧不知道他是谁 没有任何关联,这个时候就用到了cookie和session客户端(cookie) 存储sessionid 1:给客户端设置cookie response = HttpResponseRedirect(reverse('index')) sessionid = st...原创 2018-11-27 21:17:34 · 139 阅读 · 0 评论 -
Python3 腾讯云api签名
import requestsimport sysimport jsonimport hashlibimport timeimport base64import hmacimport randomclass Qcloud(object): def __init__(self,config,Id,key): self.config = config ...原创 2018-12-17 18:03:40 · 1565 阅读 · 0 评论 -
Python3 阿里云API签名
class AliAuth(object): Timestamp = datetime.utcnow().isoformat() SignatureNonce = str(uuid.uuid1()) def __init__(self, config, Id=None, key=None): ''' this is ali api...原创 2018-12-17 18:00:19 · 2059 阅读 · 0 评论 -
Python 人员值班表
最近一直在写CMDB相关的项目,但是涉及到了人员值班的问题, 因为之前没接触到,导致自身的效率很低, 一度感觉跌入低谷,下面给大家说一下思路以及demo演示1. 以django框架为例2. 涉及三个表3. 人员值班之间互换, 每天会生成当前值班人,每天之后的都是future- 第一个表为每一次抽签的表,里面包括抽签时间,生效时间,及抽签表的人员id顺序class DrawOrder(...原创 2018-12-27 15:45:44 · 8476 阅读 · 1 评论 -
django rest framework 过滤时间
通常我们会用到过滤两个时间段内的一些数据, 当我们用django rest framework的时候, 他可以根据字段filter_fields进行过滤, 但是对于日期来说并不起作用, 这个时候就需要我们设置重写queryset方法进行捕捉了重写get_queryset()def get_queryset(self): start = self.request.query_params...原创 2018-12-01 10:12:17 · 2441 阅读 · 4 评论 -
Django入门九之 (Admin User Group Permission)
Admin User && Group && Permission `INSTALLED_APPS`中添加了四个依赖的`app`, `django.contrib.auth`, `django.contrib.contenttypes`, `django.contrib.messages` `django.contrib.sessions`。...原创 2018-11-27 21:26:26 · 1153 阅读 · 0 评论 -
Django入门八之 (上下文)
4. 模板上下文处理器(context processor):在settings.py中,包含了当前使用的上下文处理器。他的作用是可以给每一个response都提供自己想要添加的参数。settings.py->TEMPLATES->OPTIONS->context_processors中使用的上下文处理器的作用:django.template.context_p...原创 2018-11-27 21:24:15 · 271 阅读 · 0 评论 -
Django入门七之 (中间件)
CSRF (Cross Site Request Forgery)### 1.`CSRF(Cross Site Request Forgery)`攻击:1. 跨站请求伪造。在用户不知情的情况下以用户的名义向有`CSRF`漏洞的网站发起攻击,有很大的危害性。2. 预防:在`header`中添加一个随机`token`,和`cookie`中的`csrftoken`进行比较,如果不相同,则表示该请...原创 2018-11-27 21:21:47 · 224 阅读 · 0 评论 -
Django入门六之 (Form表单)
form表单获取from django import formsDjango 中的表单 不是 HTML中的表单,用于验证用户表单输入的内容是否符合实际的标准,也可以在html中生成(不建议)requests.POST.get(表单name名称,None)requests.POST.getlist(复选框name名称,None)1 需要在每一个app下创建forms.py(并不是强制...原创 2018-11-27 21:19:56 · 236 阅读 · 0 评论 -
django Method Not Allowed (DELETE):
最近使用restful风格去写api的时候,发现当我调用post和get方法是没问题的,但是当我调用delete方法就会出现问题:看了一下View,发现你并没有重写这个方法# -*- coding:utf-8 -*-from django.views.generic import Viewfrom django.http import HttpResponseimport json...原创 2018-11-12 10:13:06 · 7611 阅读 · 1 评论 -
Django入门一之 (URL)
即将退出Django博客专栏,专栏将围绕Django2.0进行讲解,从0到1,帮助刚接触web框架的朋友入门,敬请期待…原创 2018-11-07 21:18:41 · 206 阅读 · 0 评论 -
[Python/SaltStack] 运用Python语言进行自定义Salt模块
今天简单了看了一下 salt自定义模块,发现自定义的模块可以省事很多,也很灵活,可以做很多事情模块路径必须在master定义的路径下file_roots: base: - /srv/salt/base prod: - /srv/salt/prod我的路径在 /srv/salt/base 所以我定义文件的时候不需要在 当前路径的_modules下创建模块脚本mkdir原创 2017-08-20 10:57:58 · 2319 阅读 · 0 评论 -
[Python/发QQ邮件]
#!/usr/bin/env python# -*- coding:utf-8 -*-import smtplibimport email import sysimport osimport json import timefrom email.mime.text import MIMETextclass SMTPSendMail: def __init__(self,con原创 2017-07-27 14:48:36 · 445 阅读 · 0 评论 -
[Python/爬虫]斗图网
#!/usr/bin/env python# *-* coding:utf-8 -*-from bs4 import BeautifulSoupimport reimport requestsurl = 'https://www.doutula.com/article/list/?page={}'class DownLoadImg(object): def __init__(self原创 2017-07-17 17:09:56 · 480 阅读 · 0 评论 -
[Python/自动化运维] 运用Python进行Nginx日志状态码过滤
每个公司的NginxWeb服务器日志格式是不一样的,但是正则改一下就可以用,统计状态码及域名的发生次数,注意:注释部分为同一条url 同一个客户端ip及状态码访问过来的,生产环境这样的也不是很多,所以注释了,代码如下:#!/usr/bin/env python# -*- coding:utf-8 -*-import reimport sysdef Return(): print('\t原创 2017-06-15 01:46:28 · 1219 阅读 · 0 评论 -
[Python/转换大写/小写/判断升序/降序]
#!/usr/bin/env python# -*- coding: utf-8 -*-class Str(object): def __str__(self): return '我是无敌的'class Subject(Str): def __init__(self,value): self.value = value def Reverse原创 2017-06-26 16:22:05 · 1588 阅读 · 0 评论 -
[Python/过滤文件英文去从]
现在有个需求 文件内容是 地区英文:中文,因为文件里面的英文有重复的 要求将 英文的重复去掉 只判断 英文是否 重复 更改前如下: #!/usr/bin/env python# -*- coding:utf-8 -*-import sysdef filter(f): f1 = open('result.txt','w') l2 = [] k = {} try:原创 2017-06-26 16:17:57 · 457 阅读 · 0 评论 -
[Python/指定条件过滤文件]
现有一些文件 需要进行过滤处理如下 处理之后如下: 代码如下:#!/usr/bin/env python# -*- coding:utf-8 -*-import reimport sysdef Filternumber(f): n = [] v = [] for i in open(f,'r'): try: if re.ma原创 2017-06-26 15:59:39 · 2217 阅读 · 0 评论 -
Python/自定义排序函数
今天用两种方式来判断输入的值是否为升序降序和无序列三种,包括值重复Number1:#!/usr/bin/env python# -*- coding:utf-8 -*-def RuoLan(value): x = 1 R = [] for i in range(1,len(value)): if value[i] >= value[i - 1] or val原创 2017-05-30 20:25:26 · 467 阅读 · 0 评论 -
[Python/实现简单登入系统]
#!/usr/bin/env python# -*- coding:utf-8 -*-import osimport getpassimport sysos.system('clear')for i in open('success.txt','r').readlines(): user_input = str(input('请输入用户名: ')) if i.strip('\原创 2017-10-10 16:25:35 · 1500 阅读 · 0 评论 -
[Python3.6/pip/安装一些模块出现的常见问题]
本机环境:操作系统:Mac OS Python版本:Python3.6 pip版本:pip3.6当我尝试去安装 python-memcache的时候就会出现一些奇怪的问题pip3 install python-memcachedCollecting python-memcached Using cached python-memcached-1.58.tar.gz Compl原创 2017-10-31 17:09:10 · 5136 阅读 · 2 评论 -
资产管理 cmdb / ansible
####最近也是刚刚把平台完成,主要实现了很多功能,具体可查看https://github.com/YuZongYangHi/ansible-cmdb基于基本设备增删改查,实时探测主机存活状况,基于ansible fact进行硬件信息收集联系人管理,ansible主机群组管理,基于ansible 动态inventory进行接口调用发布管理,完美结合ansible 2.4+ api进行主机&...原创 2018-10-25 13:32:20 · 2136 阅读 · 3 评论 -
Django & Celery
celery是一个分布式异步框架,当我们有一个需求,比如我需要进行大批量的邮箱发送,或者博客订阅推送的时候,会造成大量的等待执行,这时候就会用到celery,一、安装pip install celery redis 二、编写#tasks.pyfrom celery import Celeryimport timeapp = Celery("task_transport...原创 2018-09-11 13:48:21 · 580 阅读 · 0 评论 -
ansible2.4+ api & cmdb接口动态调用Inventory
最近在开发CMDB & Ansible 运维平台,刚刚踩了ansible api2.4+的一些问题,接下来整理一下给大家列出来,晚上搜了很多的文档并没发现最新的2.4中的文档ansibleAPI 常用模块用于读取yaml,json格式的文件from ansible.parsing.dataloader import DataLoader#用于管理变量的类,包括主机,组,扩展...原创 2018-07-24 15:06:57 · 10356 阅读 · 3 评论 -
谈谈[Python/RLock/Lock]
当我们用Python进行 高并行编程的时候,尤其是多线程 threading编程下 我们会用到内存变量共享 ,这时候就会用到锁 lock,但是我们经常会碰到死锁下面给大家举个例子说一下什么叫做死锁以及RLOCK/LOCK的特点以及如何避免死锁死锁的产生LOCKRLOCK 假设我们有两个并发线程(线程A与线程B),同时还有两个资源(1,2)假设线程A需要资源1,线程B需要资源2...原创 2018-06-12 16:26:05 · 1034 阅读 · 0 评论 -
Django ORM 外键/多对多
很多人学Python Django的时候当学到models ORM的 外键ForeignKey,多对多ManyToMany的时候 就会晕,也不知道什么时候会用,今天给大家举一个比较经典的例子,以及对应的查询,创建我们创建一个博客,包含 文章表,分类表,标签表文章表包含分类(外键) 标签(多对多)实现文章添加,查询编辑models.py 创建对应的表class Categorys...原创 2018-05-10 17:53:56 · 2638 阅读 · 0 评论 -
Python/logging日志模块/配置文件形式
在一些微服务或web服务中我们难免需要日志功能,用来记录一些用户的登录记录,操作记录,以及一些程序的崩溃定位,执行访问定位等等;Python内置 非常强大的日志模块 ==> logging 今天给大家分享一下以配置文件形式进行配置log日志 ;Centos6.7Python3.6 logging0.5.1.2logging模块有三个比较重要的功能组件:loggers...原创 2018-03-19 13:54:23 · 7754 阅读 · 1 评论 -
[Python/魔法方法/装饰器]
很多初学者遇到面向对象这块就会有点懵,尤其是魔法属性和装饰器,我们经常会遇到__str__双下划线开头,双下划线结尾的特殊方法,这个就是Python给我们内置的特殊方法,下面将对于常用的方法详解:@staticmethod:该方法称之为静态方法 1:静态方法无需传入self参数; 2:静态方法不能访问实例变量,实例属性,类属性,独立的方法; 3:说白了就是一个普通的函数,可以用来做一些工具原创 2017-12-25 11:14:36 · 331 阅读 · 0 评论 -
[zabbix/使用API进行批量创建screen(聚合图形)]
因公司需求,需要根据主机名称(hostname)模糊匹配查询出来,进行批量添加聚合图形(网卡流量监控)试着在网上找案例,发现均是代码 潦潦草草 复制一大片,无任何重点官方文档案例提笔带过官方文档 网上 翻了个遍 找到了重点思路点需要从zabbix 数据库里面匹配传递进来的hostname模糊参数 进行匹配zabbix api hosts.get 返回所有从数据库里面返回...原创 2017-11-29 09:49:55 · 4757 阅读 · 13 评论 -
Python3 金山云api调用签名
class KsAuth(object): def __init__(self, kwargs, get=True, region=None): assert kwargs and kwargs['Action'] self.url = cloud_account.KS_EPC_URL self.region = region if re...原创 2018-12-17 18:07:07 · 1180 阅读 · 2 评论