
Python
文章平均质量分 70
ButFlyzzZ
这个作者很懒,什么都没留下…
展开
-
Python multiprocessing多进程锁
0X00 简介multiprocessing是一个支持使用与threading模块类似的 API 来产生进程的包。multiprocessing包同时提供了本地和远程并发操作,通过使用子进程而非线程有效地绕过了全局解释器锁。 因此,multiprocessing模块允许程序员充分利用给定机器上的多个处理器。 它在 Unix 和 Windows 上均可运行。multiprocessing模块还引入了在threading模块中没有的API。一个主要的例子就是Pool对象,它提供了...原创 2021-04-01 17:22:07 · 8339 阅读 · 6 评论 -
Python logging模块继承逻辑
import loggingimport oslogging.basicConfig( level=logging.DEBUG, filename='./d.log', filemode='a', datefmt='%Y-%m-%d %H:%M:%S',)log = logging.getLogger(__name__)import loggingfrom logging.handlers import RotatingFileHandlerdef s.原创 2021-03-30 11:38:18 · 1154 阅读 · 1 评论 -
Python各种脚本&函数
1.Ubuntu18编辑网卡的IP/MASKfrom ruamel.yaml import YAMLimport os# is_null如果为True,那么将设置ip和掩码为空# ubuntu18修改/etc/netplan/50-cloud-init.yaml文件来修改网卡IP地址等def modify_ip(iface, ip_mask): """ 使用netplan apply命令,如果是错误命令会报错,不会修改网卡信息,也不会影响正常网卡的运行 :param原创 2020-12-17 14:22:12 · 637 阅读 · 2 评论 -
Flask编码心得
前言:最近又把Flask捡起来用了用,借这个机会总结一下Flask的一些使用心得0X00 蓝图的使用如果使用过Django,那么就很容易理解蓝图了,Django有个APP的概念,将每个应用模块放在不同的目录,然后通过settings.py对模块进行加载,实现模块的清晰划分和可控。蓝图差不多也是这么个功能,毕竟当API越来越多,功能越来越复杂的时候,不可能把所有API都放在一个文件吧?这样不利于开发和维护。1.创建Flask主程序manager.py创建一个Flask应用的主程序,就叫mana原创 2020-08-28 17:28:03 · 819 阅读 · 0 评论 -
Python threading+queue实现生产消费模型
0X00 threadingPython的多线程库,虽然py的多线程在CPU密集型操作场景下是个垃圾,但是在IO密集型的场景下还是能显著提升效率的。关于threading的介绍可以查阅文档,这篇博客也不错:https://blog.youkuaiyun.com/Xin_101/article/details/86593151使用方式一般有两种,一种是创建threading.Thread实例,传入要绑定该线程的函数,然后进行执行。另一种就是继承threading.Thread,编写自己的线程类,个人比较倾向于第二原创 2020-08-21 17:35:00 · 372 阅读 · 0 评论 -
Django RESTframework源码剖析
0X00 从请求到响应,Django到底做了些什么1、HTTP请求分为请求报文和响应报文,请求报文由客户端发出,服务端接收。然后经过一系列的处理,服务端将响应报文返回给客户端。当Django收到HTTP请求报文时,会提取请求报文中的信息,并将其封装为HttpRequest对象,具体函数如下:(1)wsgi.py,创建一个wsgi app实例def get_wsgi_applica...原创 2020-06-25 14:10:21 · 701 阅读 · 0 评论 -
OpenVAS安装,使用,二次开发
0X01 安装OpenVASCentOS安装openvas:https://forums.atomicorp.com/viewtopic.php?f=31&t=8047vim /etc/selinux/config# 修改参数:# SELINUX=disabled# 更新:# yum -y update重启:# reboot# 安装依赖:yum insta...原创 2020-06-25 14:00:28 · 6294 阅读 · 3 评论 -
Python多重装饰器
普通装饰器使用:def decorator(func): def wrapper(*args, **kwargs): return func() return wrapper@decoratordef test_func(): return 'Done'多重装饰器:from flask import Flask, redirectimport py...原创 2018-03-21 11:44:41 · 371 阅读 · 0 评论 -
Flask处理前台POST过来的JSON
POST JSON数据的JS代码:$.ajax({ url:'http://127.0.0.1:5000/calc', type : 'post', dataType:'json', headers: { "Content-Type": "ap...原创 2018-06-07 16:45:09 · 20880 阅读 · 5 评论 -
在Ubuntu上编写一个开机自启动的Python脚本
注意事项:如果脚本没有执行,首先应该考虑执行权限问题,查看脚本和相应的文件是否有执行权限,如果没有需要赋予执行权限。方法1:1.编写一个shell脚本文件,例如python_auto.sh,文件内容:2.编写start.py文件,里面执行你需要服务器开启执行的操作3.在 /etc/profile 这个文件中,添加shell脚本文件路径,例如:在服务器开机时会自动执行 ...原创 2018-06-07 16:48:16 · 25522 阅读 · 2 评论 -
Python 两种POST请求的方式
#方式1: urllib2 urllib 以表单的形式提交POST数据#Exp: username=zcs&password=123import urllib2import urllibdata = {'username': 'rose', 'password': '123456'}f = urllib2.urlopen( url='http://IP:POR原创 2018-06-07 16:53:12 · 46251 阅读 · 1 评论 -
Django contenttypes的作用
1.django.contrib.contenttypesDjango创建项目后,在settings.py中默认加载了以下几个app:INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.cont...原创 2019-02-15 10:21:15 · 1321 阅读 · 0 评论 -
WSGI协议
WSGI协议首先弄清下面几个概念: WSGI:全称是Web Server Gateway Interface,WSGI不是服务器,python模块,框架,API或者任何软件,只是一种规范,描述web server如何与web application通信的规范。server和application的规范在PEP 3333中有具体描述。要实现WSGI协议,必须同时实现web server和web ...转载 2019-02-13 18:25:00 · 271 阅读 · 0 评论 -
字符串拼接存在的SQL注入隐患
前面博文写到用pymysql连接MySQL数据库:#!/usr/bin/env python # -*- coding:utf-8 -*- import pymysql # 创建连接 conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123', db='t1') ...原创 2019-05-21 17:15:51 · 2076 阅读 · 0 评论 -
Django使用Celery
0X-1 踩坑记录1、版本信息:Python3.6django-celery3.3rabbitmq 3.6.10-1使用上述版本运行任务会碰到以下问题: File "/usr/local/lib/python3.6/dist-packages/celery/backends/amqp.py", line 201, in drain_events if time...原创 2019-07-04 09:11:32 · 1882 阅读 · 0 评论 -
Django JWT身份验证
0X00 安装及基础使用Django JWT是基于Django的auth模块和user model的,所以如果不使用Django的model那么是无法使用Django JWT的。其视图的实现方法是基于Django restframework的APIView和serializers。修正一下,准确的来说Django restframework JWT默认是基于auth模块和user model的...原创 2019-07-10 08:52:41 · 1230 阅读 · 1 评论 -
Python使用Mysql连接池
0X00 为什么要用数据库连接池平常可能习惯使用pymysql或者一些数据库连接包去跟数据库交互,代码可能是这样的:import pymysqlconfig = { 'host': config_template['MYSQL']['HOST'], 'port': config_template['MYSQL']['PORT'], 'user': config...原创 2019-08-17 11:15:56 · 15646 阅读 · 2 评论 -
Python赋值、浅拷贝、深拷贝
对于字典、元祖、列表 而言,进行赋值、浅拷贝和深拷贝时,其内存地址的变化是不同的。1、赋值赋值,只是创建一个变量,该变量指向原来内存地址,如:123n1 ={"k1":"wu", "k2": 123,"k3": ["alex",456]} n2 =n1 2、浅转载 2017-10-10 16:30:42 · 354 阅读 · 1 评论 -
Python之面向对象
C# Java:只能面向对象编程Ruby Python :面向对象编程+函数编程在Python中一切皆对象反射:以字符串的形式去对象中操作成员tar_module = __import__( 'module_name' ) # 以字符串的形式导入某个模块tar_module = __import__( ' lib.test.module_name ' , fromli...原创 2018-03-07 17:55:05 · 286 阅读 · 0 评论 -
Python编码问题
Python2 默认的编码是ASCII 但是由于不能显示中文所以我们一般会使用UTF-8在py文件头加上:# -*- coding: UTF-8 -*-这样默认是以UTF-8来编码的,但是最好是以unicode来处理字符串,最后在转换成自己需要的编码格式比如:conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', pass...原创 2018-03-07 17:40:52 · 358 阅读 · 0 评论 -
Ubuntu服务器部署Django项目
版本信息:Ubuntu14.04 Python3.4 Django1.11 Apache2.4 MySql 14.14首次尝试自己搭建服务器,用的是BAE。一开始安装的CentOS 7,无奈这个系统对于初学者太过复杂,很多不可预知的问题,尝试了一星期后,搭建不起来,选择放弃。然后重装了一个Ubuntu系统,由于有了前面的经验这次搭建比较顺利,两天时间服务器就跑起来了,下面记录下心路历程原创 2017-10-07 16:08:42 · 3126 阅读 · 0 评论 -
Python之进程、线程、协程
进程是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.虽然多个进程可以共享系统中的各种资源,但其中许多资源一次只能为一个进程所使用,我们把一次仅允许一个进程原创 2017-10-10 22:20:40 · 370 阅读 · 0 评论 -
生成器与迭代器
Python中关键字yield有什么作用?yield有什么用?例如下面这段代码:def node._get_child_candidates(self, distance, min_dist, max_dist): if self._leftchild and distance - max_dist < self._median: yield self._leftch...转载 2017-08-05 16:53:31 · 252 阅读 · 0 评论 -
Python面试题
Python语言特性1 Python的函数参数传递看两个例子:Python12345a = 1def fun(a): a = 2fun(a)print a # 1Python12345转载 2017-08-03 20:51:12 · 686 阅读 · 0 评论 -
Python操作MySQL
本篇对于Python操作MySQL主要使用两种方式:原生模块 pymsqlORM框架 SQLAchemypymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。1、执行SQL#!/usr/bin/env python# -*- coding:utf-8 -*-import pymysql # 创建连接conn = pymysql.c转载 2017-10-22 14:53:36 · 245 阅读 · 0 评论