![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python
特仑苏纯酸奶
这个作者很懒,什么都没留下…
展开
-
使用python基于zmq的DEALER-ROUTER模式实现分布式消息分发的demo
zmq的DEALER套接字是对REQ的一层包装,本质就是在发送数据前发送一段bytes数据(所以一个bytes数据就意味着一个连接),而ROUTER就是对REP的包装,是在接收数据前先接收bytes数据。REQ-REP可以看作bytes数据为空的DEALER-ROUTER模式,但是DEALER和ROUTER又不像REQ和REP一样严格遵循send-recv-send-recv.....的模式。总体分为client-broker-worker三个部分,简化如下图所示。broker的伪码流程..原创 2020-08-05 16:56:33 · 2647 阅读 · 0 评论 -
celery动态设置定时任务实践
首先celery是一种异步任务队列,如果还不熟悉这个开源软件的请先看看官方文档,快速入门。这里讲的动态设置定时任务的方法不使用数据库保存定时任务的信息,所以是项目重启后定时任务配置就会丢失,如果想保存成永久配置,可以考虑保存到数据库、redis或者使用pickle、json保存成文件,在项目启动时自动载入。方法原理介绍先来看一下celery的beat运行过程。上图是beat的主...原创 2020-04-16 19:09:10 · 3740 阅读 · 8 评论 -
python 开放搜索opensearch示例
这代码是自己根据官网的demo结合业务需求修改之后的版本具体api请参考官方文档实现,只需要根据api设置参数即可# -- coding: utf-8 --import timeimport randomimport hmacimport base64import copyimport urllib.parseimport requestsimport logging...原创 2020-03-03 18:16:11 · 1471 阅读 · 2 评论 -
Python pymysql调用存储过程
使用pymysql调用存储过程import pymysqldb = pymysql.connect(host='rm-******.mysql.rds.aliyuncs.com', port=3306, user='root', password='******', db='***')cursor = db.cursor(...原创 2020-02-24 12:30:36 · 5077 阅读 · 0 评论 -
Python 调用阿里网关
目前因为只用到get/post请求,所以只试验了这两个方式。对headers的签名方法是按照请求签名说明文档编写的,文档更新时间为2017-09-19 17:54:48import osimport timeimport uuidimport hmacimport base64import requestsIS_DEV=Falseif IS_DEV: stage ...原创 2020-01-03 16:55:07 · 666 阅读 · 1 评论 -
PyMySQL和eventlet实现数据库连接池
eventlet的db_pool文档地址:http://eventlet.net/doc/modules/db_pool.html需要先安装pymysql 0.9.3模块和eventlet 0.25.1模块。具体代码如下:import pymysqlfrom eventlet.db_pool import RawConnectionPool, ConnectionPool, Datab...原创 2019-11-08 16:29:02 · 326 阅读 · 0 评论 -
gRPC-Python3
Python 快速入门gRPC文档gRPC官方中文文档官方git仓库:https://github.com/grpc/grpc.git安装gRPC环境# GRPC Python setup requirementscoverage>=4.0cython>=0.29.8enum34>=1.0.4protobuf>=3.5.0.post1six>...原创 2019-11-06 16:38:22 · 579 阅读 · 0 评论 -
重写django的mysql驱动实现原生sql语句查询返回字典类型数据
在使用django的时候,有些需求需要特别高的查询效率,所以需要使用原生的sql语句查询,但是查询结果一般是一个元组嵌套元组。为了处理方便,需要从数据库查询后直接返回字典类型的数据。这里使用的方法是继承django.db.backends.mysql驱动首先在django项目下创建一个mysql文件夹,然后在这个文件夹下创建base.py。base.pyfrom django.d...原创 2019-09-18 15:39:36 · 520 阅读 · 1 评论 -
requests库
安装pip install requests请求方式requests.get(url)requests.post(url)requests.put(url)requests.delete(url)requests.head(url)requests.options(url)Session.request参数method: 请求方式 如:get,post,pu...原创 2019-07-27 15:54:45 · 1126 阅读 · 0 评论 -
python 实现Twitter的分布式雪花算法
import socketimport timeclass IdWorker(object): # 获取主机名 HOSTNAME = socket.gethostname() # 获取IP IP = socket.gethostbyname(HOSTNAME) # 序列号(12位 0-4095) SERIAL_NUMBER = 0 ...原创 2019-07-31 16:15:14 · 357 阅读 · 0 评论 -
Google 批量翻译 脚本
先安装 execjspip installexecjs根据要翻译的字符串计算google翻译接口的tk值HandleJs.py:import execjsclass Py4Js(): def __init__(self): self.ctx = execjs.compile(""" function TL(a) { ...原创 2019-04-14 14:17:19 · 4077 阅读 · 1 评论 -
Celery 异步任务、定时任务
celery介绍Celery是一个功能完备即插即用的任务队列。它使得我们不需要考虑复杂的问题,使用非常简单。celery看起来似乎很庞大,本章节我们先对其进行简单的了解,然后再去学习其他一些高级特性。 celery适用异步处理问题,当发送邮件、或者文件上传, 图像处理等等一些比较耗时的操作,我们可将其异步执行,这样用户不需要等待很久,提高用户体验。 celery的特点是:简单,易于使用和...原创 2019-04-13 01:00:42 · 467 阅读 · 0 评论 -
Django 的分页和自定义分页组件
一 自定义分页后台代码def index(req): data = list(range(999)) # 数据源 以列表示例 current_page_num = req.GET.get('p', None) # 获取当前页码 if not current_page_num: current_page_num = 1 else: ...原创 2018-11-21 22:33:49 · 209 阅读 · 0 评论 -
Python 多路复用之selectors
server端# I/O多路复用import selectorsimport socketdef accept(sock, mask): conn, addr = sock.accept() # 得到连接对象conn conn.setblocking(False) # 设置为非阻塞 sel.register(conn, selectors.EVENT_RE...原创 2018-10-13 15:30:39 · 637 阅读 · 0 评论 -
Python学习笔记 String类型常用方法
capitalize()把字符串的第一个字符改为大写casefold()把整个字符串的所有字符改为小写center(width)将字符串居中,并使用空格填充至长度 width 的新字符串count(sub[, start[, end]])返回 sub 在字符串里边出现的次数,start 和 end 参数表示范围,可选。encode(encoding='utf-8',...原创 2018-07-20 11:58:22 · 212 阅读 · 0 评论 -
Python 字符编码与文件处理
Python字符编码目前计算机内存的字符编码都是Unicode,目前国内的windows操作系统采用的是gbk。python2默认的字符编码方式是ASCIIpython3默认的字符编码方式是Unicode.py文件头部的#coding:utf-8是帮助python识别.py文件的编码方式,故在写.py文件时要注意文件头和文件保存时的编码方式要相同,否则可能会出现乱码python...原创 2018-07-26 15:27:26 · 123 阅读 · 0 评论 -
Python 序列化之json、pickle
序列化是指把内存里的数据转变成字符串,以使其能保存到硬盘上或者通过网络输送到远程。序列化的两个模块:json:只能把python中的int/str/list/tuple/dict类型的数据,可以在不同的语言之间传递数据。Python和JavaScript数据对应关系:JavaScript Python { } dict [] list "String" ...原创 2018-08-01 12:02:53 · 187 阅读 · 0 评论 -
Python 模块之shelve、XML、hashlib、configparser
shelve shelve模块也是一种可以将数据序列化的模块使用方法1. open2. 读写3. close特点:使用方法比较简单 提供一个文件名字就可以开始读写,读写的方法和字典一致;跨平台性差代码示例:import shelve# 序列化sl = shelve.open("shelvetest.txt")sl["date"] = "8-13"sl["list1"] =...原创 2018-08-14 08:27:36 · 155 阅读 · 0 评论 -
Python 模块之re正则表达式
re正则表达式就是字符串的匹配规则元字符: . ^ $ * + ? { } [ ] | ( ) \. : 默认匹配的是除'\n'以外的所有字符 (在方法内指定flags = re.DOTALL,匹配任意字符)^ : 从字符串的开头开始匹配(在方法内指定falgs = re.MULTILINE,则会改变这种行为)$ : 从字符串的结尾开始匹配(在方法内指定falgs = r...原创 2018-08-14 16:27:32 · 281 阅读 · 0 评论 -
Python 模块之logging日志
logginglogging模块是pyhton自带的内置模块,提供了标准的日志接口 日志等级列表日志等级(level) 描述 级别 NOTSET 不设置 0 DEBUG 最详细的日志...原创 2018-09-15 11:50:38 · 252 阅读 · 0 评论 -
Python 进程
进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。同步:同步就是在发出一个功能调用时,在没有得到结果之前,该调用就不会返回。按照这个定义,其实绝大多数函数都是同步调用。但是一般而言,我们在说同步、异步的时候,特指那些需要其他部件协作或者需要一定时间完成的任务。异步:异步的概...原创 2018-09-16 16:45:46 · 311 阅读 · 0 评论 -
Python 线程
线程是程序中一个单一的顺序控制流程。进程内有一个相对独立的、可调度的执行单元,是系统独立调度和分派CPU的基本单位指令运行时的程序的调度单位。在单个程序中同时运行多个线程完成不同的工作,称为多线程。Thread实例对象的方法:isAlive(): 返回线程是否活动的。getName(): 返回线程名。setName(): 设置线程名。threading模块提供的一些方法:t...原创 2018-09-17 23:34:28 · 130 阅读 · 0 评论 -
Python 关于文件操作
文件的操作方式moder 只读 rb 只读,读取的是二进制编码 r+ 可读可写,先读取文件后写文件,新写入的文本会写在原本的文本内容之后;先写文件后读文件,读出的文本内容就会有变化,会发现读取的文本相对原来的文本内容少了一部分,这是因为用r+的方式打开文件时,读写文本内容的指针会在文本开头,当先执行写的操作时,会把原本的内容覆盖,取决写入文本的长度,而接下来读取的文本内容刚好是指针之后的文...原创 2018-07-20 20:09:13 · 107 阅读 · 0 评论 -
Python 单例模式实现的五种方式
一、classmethod装饰器# 全局变量ip = '192.168.13.98'port = '3306'class MySQL: __instance = None def __init__(self, ip, port): self.ip = ip self.port = port @classmethod ...原创 2018-09-15 12:08:44 · 171 阅读 · 0 评论 -
Python socket
Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。创建套接字对象s = socket.socket(socket_family,socket_type,protocal=0)# socket_family 可以是 AF_INET 或 AF_INET6,socket_type 可以是 SOCK_STREAM 或 SOCK_DGRAM,protocol 一般不填,默...原创 2018-09-15 21:36:45 · 1764 阅读 · 0 评论 -
Python 装饰器 多装饰器同时装饰一个函数 多参数函数
装饰器是在不修改源代码的情况下,使用装饰器增加原函数的功能。在软件开发中有一个原则——"开放-封闭",简单地说就是已经实现的功能不允许被修改,但可以被扩展。封闭:已经实现的功能不可以被修改 开放:对现有的功能可以扩展这个小实验写了三个装饰器和两个普通函数,对比可以得出装饰器运行的过程import timedef dec1(func):#装饰器1 参数为被装饰的函数func ...原创 2018-07-23 15:47:19 · 330 阅读 · 0 评论