随笔分类 - python
存放一些我学习Python过程中的一些代码,感悟
摘要:一、背景 项目中其中一个服务原来是基于tornado开发的,虽然tornado是一个异步框架,但是由于业务逻辑中存在大量的同步操作,例如:查数据、查es等;导致服务性能很低,于是经过调研最终决定将底层框架切换到gevent,但是该优化上线后发现每次更新时耗时很长需要十几秒,因此抽时间排查了一下这里的
阅读全文
摘要:一、SQLAlchemy简介 1.1、SQLAlchemy是什么? sqlalchemy是一个python语言实现的的针对关系型数据库的orm库。可用于连接大多数常见的数据库,比如Postges、MySQL、SQLite、Oracle等。 1.2、为什么要使用SQLAlchemy? 它将你的代码从底
阅读全文
摘要:最近项目中使用的一个python SDK封装的C SDK版本太低了,有bug,因此需要使用最新版本的C SDK重新编译python SDK,但是在替换为新的C SDK后执行编译时发现有报错,原来的python SDK使用cython对C的SDK进行封装实现的,为了解决这个问题,因此需要了解一下cyt
阅读全文
摘要:最近在看《python源码剖析》这本书,其中大部分分析过程都是需要查看字节码指令的,但是书中没有指定如何获取一段代码的字节码指令,查了一下文档才发现该如何生成字节码指令,记录一下: 假如有一个python文件simple_obj.py,内容如下: i = 1 s = "Python" d = {}
阅读全文
摘要:第一章:用pythonic的方式思考 1:确认使用的python版本 python --version python3 --version 2:遵循PEP8风格指南 《Python Enhancement Proposal #8》又叫PEP8,它是针对Python代码风格而编订的风格指南。链接 采用
阅读全文
摘要:一、背景 python是一个动态语言,可以支持我们在运行时动态的给类、对象添加属性或者方法;但是如果我们想要限制可以添加的属性或方法该怎么办呢? 二、__slots__ python允许在定义class的时候,定义一个特殊的__slots__变量,来限制该class能添加的属性: >>> class
阅读全文
摘要:一、背景 大家都知道gevent的机制是单线程+协程机制,当遇到可能会阻塞的操作时,就切换到可运行的协程中继续运行,以此来实现提交系统运行效率的目标,但是具体是怎么实现的呢?让我们直接从代码中看一下吧。 二、切换机制 让我们从socket的send、recv方法入手: def recv(self,
阅读全文
摘要:原文:https://www.python.org/dev/peps/pep-3101/ 一、抽象 该PEP提出了一种用于内置字符串格式化操作的新系统,旨在替代现有的%字符串格式化操作符。 二、基本原理 Python当前提供了两种字符串插值方法: * The '%' operator for str
阅读全文
摘要:背景 yum无法直接安装python3.7版本,于是尝试从源码直接编译安装,记录一下编译过程,一边后续查阅参考。 安装 下载源码 https://docs.python.org/3/using/unix.html#building-python 编译 ./configure --enable-sha
阅读全文
摘要:一、coding:utf-8 让我们先来看一个示例,源码文件是utf-8格式: print('你好 python') 当使用python2执行该程序时会收到一下报错: File "./hello_world.py", line 2 SyntaxError: Non-ASCII character '
阅读全文
摘要:一、背景 平时工作中经常需要使用各种尺寸、格式的图片来做测试,每次从百度或者谷歌找图都非常麻烦,于是就想作为一个程序员怎么能被这个问题影响效率呢,一切程序可以做的事情都应该用程勋来做并提升效率,这才是我们编程的意义所在。 二、实现 于是就想实现一个web版的图片生成器,填颜色、尺寸、格式就可以生成指
阅读全文
摘要:一、介绍 elasticsearch-py是一个官方提供的low-level的elasticsearch python客户端库。为什么说它是一个low-level的客户端库呢?因为它只是对elasticsearch的rest API接口做了一层简单的封装,因此提供了最大的灵活性,但是于此同时使用起来
阅读全文
摘要:工作中遇到一个问题,上游服务通过grpc调用下游服务,但是由于下游服务负载太高导致上游服务的调用会随机出现超时的情况,但是有一点不太明确:超时之后,下游服务还会继续进行计算么? 于是自己写了一个damon试了一下: client: 1 # Copyright 2015 gRPC authors. 2
阅读全文
摘要:参考文档:http://docs.celeryproject.org/en/latest/userguide/optimizing.html#guide-optimizing
阅读全文
摘要:参考文档:http://docs.celeryproject.org/en/latest/userguide/daemonizing.html#daemonizing
阅读全文
摘要:参考:http://docs.celeryproject.org/en/latest/userguide/routing.html#guide-routing
阅读全文
摘要:参考文档:http://docs.celeryproject.org/en/latest/userguide/monitoring.html#guide-monitoring
阅读全文
摘要:参考文档:http://docs.celeryproject.org/en/latest/getting-started/next-steps.html#next-steps
阅读全文
摘要:参考文档:http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html#first-steps
阅读全文
摘要:官方文档:https://2.python-requests.org//en/master/ 工作中涉及到一个功能,需要上传附件到一个接口,接口参数如下: 使用http post提交附件 multipart/form-data 格式,url : http://test.com/flow/upload
阅读全文