def

Python之字符串切片

*爱你&永不变心* 提交于 2021-01-13 17:09:31
切片操作(slice)可以从一个字符串中获取子字符串(字符串的一部分)。我们使用一对方括号、起始偏移量start、终止偏移量end 以及可选的步长step 来定义一个分片。 格式: [start:end:step] [:] 提取从开头(默认位置0)到结尾(默认位置-1)的整个字符串 [start:] 从start 提取到结尾 [:end] 从开头提取到end - 1 [start:end] 从start 提取到end - 1 [start:end:step] 从start 提取到end - 1,每step 个字符提取一个 左侧第一个字符的位置/偏移量为0,右侧最后一个字符的位置/偏移量为-1 举例: 输入一个字符串,返回倒序排序的结果,:如:‘abcdef’ 返回:'fedcba' # 方式一:将字符串翻转,步长设为-1 def re_sort(): s = input('请输入一串字符串:>> ') return s[::-1] # 从开头到结尾步长为-1 # obj = re_sort() # print(obj) # 方式二:借助列表进行翻转 def re_sort2(): s = input('请输入一串字符串:>> ') li = [] for i in s: li.append(i) li.reverse() # 将列表反转 return ''.join(li) #

python启动celery进行运行环境检测

有些话、适合烂在心里 提交于 2021-01-13 14:37:57
celery 5.0后启动需要使用 celery 命令行启动服务,比如我们启动服务需要使用 celery -A task.celery_task worker --loglevel=info --concurrency=1 我需要在程序启动前检查是否能正常运行的需求,需要启动前增加检查运行环境是否正常。 celery 命令其实就是一个python文件,在bin目录下有一个celery.py文件, import re import sys from celery.__main__ import main from pywkmisc import HttpClientUtils, get_config # 这个是自己写的包 https://gitee.com/lovelong1/pywktools # python celeryd.py -A task.celery_task worker --loglevel=info --concurrency=1 def check_url(url, fname): try: HttpClientUtils.request_head(url) except Exception as e: print('{fname}无法访问接口{url},系统退出'.format(url=url,fname=fname)) import sys sys.exit

zabbix 利用python脚本实现钉钉告警

帅比萌擦擦* 提交于 2021-01-13 08:57:01
Zabbix 利用python脚本实现钉钉告警 1、安装python3.6环境 2、创建python脚本 cd local/zabbix-4.0.3/share/zabbix/alertscripts/ 新建一个zabbix_dingding.py文件 vi zabbix_dingding.py //修改文件所有者为zabbix chown zabbix.zabbix zabbix_dingding.py //设置所有者为7权限 chmod 744 zabbix_dingding.py 文件内容如下: #!/usr/bin/python # -*- coding: utf-8 -*- import requests import json import sys import os headers = {'Content-Type': 'application/json;charset=utf-8'} api_url="https://oapi.dingtalk.com/robot/send?access_token=abec8a22f6fdfc458e9ecdd922ae2349bcbf862bfaa7f6b15c71f80fd6fc9ff1" def msg(text): json_text= { "msgtype": "text", "text": { "content":

zabbix监控报警python脚本

允我心安 提交于 2021-01-13 08:56:43
#!/usr/bin/python #_*_coding:utf-8 _*_ import urllib,urllib2 import json import sys import simplejson reload(sys) sys.setdefaultencoding('utf-8') def gettoken(corpid,corpsecret): gettoken_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + corpsecret print gettoken_url try: token_file = urllib2.urlopen(gettoken_url) except urllib2.HTTPError as e: print e.code print e.read().decode("utf8") sys.exit() token_data = token_file.read().decode('utf-8') token_json = json.loads(token_data) token_json.keys() token = token_json['access_token'] return token def

python抢票开发——设备预约助手实现

岁酱吖の 提交于 2021-01-13 08:52:10
  女朋友是药学院的,做实验时需要在特定的网站上进行设备预约,由于预约人数过多,从而导致从浏览器登录不进去或者登录进去预约失败等情况,所以我用python帮她写了一个抢位助手,让程序自动去进行位置预定,实测表明,程序的设备预定运行结果十分理想,可以预约到自己想要预约的时间段以及设备。下面分享我是如何编写该软件助手的。    首先,在浏览器开发者工具上查看浏览器和设备预定服务器的交互信息,找出关键的信息,如登录页的URL,登录信息提交页的URL,post提交的数据,Cookies信息等。这个过程不涉及编程操作。   在浏览器上,经过了登录,一系列的跳转和点击后,就到了设备预约提交页面,然后点击提交按钮之后,设备预约就成功了,在网络调试窗口中,发现点击提交按钮之后,浏览器向后台页面http://222.200.178.***/Appointment/Appointment 发起了POST 请求,查看POST请求参数后,发现参数信息含有预约时间,预约设备ID等信息,POST参数如下: POST参数 SubjectId =2e5f5627-3bbf-4aae-ac2b- b5cc586f4d70 SubjectProjectId SampleNo SampleCount SampleStuff SampleSize Target UseNature = 0

python 通过zabbix api获得所有主机的ip

烈酒焚心 提交于 2021-01-13 08:49:21
#!/usr/bin/env python3 #coding=utf-8 import json import requests #from urllib import requests, parse,error # based url and required header #url = "http://sg-zabbix.upliveapp.com/zabbix/api_jsonrpc.php" class zabbixapi: '''获得token''' def __init__(self): self.url = 'http:// xxxxxxxx /zabbix/api_jsonrpc.php' self.headers = {'Content-Type': 'application/json'} auth = { "jsonrpc": "2.0", "method": "user.login", "params": { "user": " xxxxx ", ###验证 "password": " xxxxx " }, "id": 1, "auth": None, } response = requests.post(self.url, data=json.dumps(auth), headers=self.headers) self.authid = json

关于Flask-Login中session失效时间的处理

ⅰ亾dé卋堺 提交于 2021-01-13 08:47:51
最近需要使用Python开发web系统,主要用到的框架就是Flask,前端使用Jinja2模板引擎和Bootstrap,web容器使用Cherrypy,其中关于Login管理的使用了Flask-Login插件。 基本上也是从零学起,前前后后花了有好几个月的时间,还是在借鉴了已有的一些项目基础上。在开发的过程中有很多的想法和体会,记录下来,有不对的地方欢迎大家指正。 在处理登录管理的部分,在 Flask-Login 中,如果你不特殊处理的话,session 是在你关闭浏览器之后失效的,而如果不关闭浏览器的话,失效的时间据说是1年,还是1个月,这个地方没看到官方说法,总之是很长,在某些业务场景下这样的处理方式是不能接受的。由于系统的使用者提出了新的需求类似平时的SSO处理机制,大概无任何操作一二十分钟就提示需要再次登录,这样的要求是合理的,之前也没有太注意这个方面的时间,所以就需要回过头来研究Flask-Login的session失效时间和设置问题。以前的登录部分代码: 1 @app.route( ' /login ' , methods=[ ' GET ' , ' POST ' ]) 2 def login(): 3 if request.method == ' GET ' : 4 return render_template( ' login.html ' ) 5 6

zabbix api python使用

和自甴很熟 提交于 2021-01-13 08:44:28
API使用 zabbix官网文档: https://www.zabbix.com/documentation/2.2/manual/api , Zabbix API是基于JSON-RPC 2.0规格,具体实现可以选择任何自己爱好的编程语言,可以采用Perl、Ruby、PHP之类的。 本文已python为例。python zabbix api模块较多,使用较为方便。 下面是各个语言zabbix模块及github连接,可共参考。 数据流程 下面的流程图代表了Zabbix API 工作的典型工作流。验证(方法user.login)是获取验证ID的强制步骤。这个ID又允许我们调用API提供的任何权限允许的方法来进行操作。在之前的例子中没有提到user.logout方法,这也是一次验证ID能够重复使用的原因所在。使用user.logout方法后将会使验证ID失效,后面的操作将不能再使用此ID。 Python py-zabbix by Alexey Dubkov - Zabbix Modules for Python (PyPI py-zabbix , no python3) ZabbixPythonApi by Frank Yao - Zabbix API for Python (no python3) zabbix by gescheit - a Python library (PyPI

Python _PyQt5对话框

强颜欢笑 提交于 2021-01-13 04:31:04
Python 调用PyQt5 制作对话框,退出时候有二次确认(注:默认是直接退出) 1 # -*- ytf-8 -*- 2 """ 3 用PyQt建一个对话框,退出时提示有二次确认 4 """ 5 6 import sys 7 from PyQt5.QtWidgets import QApplication,QMessageBox,QWidget 8 9 class myWin(QWidget): 10 def __init__ (self): 11 # 执行父类的__init__构造方法 12 super(). __init__ () 13 # 将窗口的设置委托给initUI方法 14 self.initUI() 15 def initUI(self): 16 # 设置窗口 17 self.setWindowTitle( " 消息框 " ) 18 self.setGeometry(200,200,500,500) # 先位置再大小 19 self.show() 20 # 重写关闭事件方法(closeEvent) 21 def closeEvent(self,event): 22 # 获取消息框实例的值 23 msg = QMessageBox.question(self, " 退出警告 " , " 你确定退出吗? " ,QMessageBox.Yes|QMessageBox.No

Django rest framework源码分析(3)----节流

偶尔善良 提交于 2021-01-13 03:48:20
目录 Django rest framework(1)----认证 Django rest framework(2)----权限 Django rest framework(3)----节流 Django rest framework(4)----版本 Django rest framework(5)----解析器 Django rest framework(6)----序列化 Django rest framework(7)----分页 添加节流 自定义节流的方法 限制60s内只能访问3次 (1)API文件夹下面新建throttle.py,代码如下: # utils/throttle.py from rest_framework.throttling import BaseThrottle import time VISIT_RECORD = {} # 保存访问记录 class VisitThrottle(BaseThrottle): ''' 60s内只能访问3次 ''' def __init__ (self): self.history = None # 初始化访问记录 def allow_request(self,request,view): # 获取用户ip (get_ident) remote_addr = self.get_ident(request) ctime =