随笔分类 -  python

深刻理解Python中的元类(metaclass)以及元类实现单例模式
摘要:在看一些框架源代码的过程中碰到很多元类的实例,看起来很吃力很晦涩;在看python cookbook中关于元类创建单例模式的那一节有些疑惑。因此花了几天时间研究下元类这个概念。通过学习元类,我对python的面向对象有了更加深入的了解。这里将一篇写的非常好的文章基本照搬过来吧,这是一篇在Stack 阅读全文

posted @ 2017-03-15 14:31 苍松 阅读(41989) 评论(10) 推荐(18) 编辑

python 内置模块之ConfigParser--配置读写
摘要:用于对特定的配置进行操作,当前模块的名称在 python 3.x 版本中变更为 configparser。 阅读全文

posted @ 2016-11-03 16:41 苍松 阅读(350) 评论(0) 推荐(0) 编辑

python 内置模块之hashlib、hmac、uuid
摘要:一、hashlib md5和sha算法通过消息摘要算法生成定长的消息摘要,消息摘要算法是不可逆的。但同一段消息通过摘要算法后得到的值是一样的,可一通过比对消息摘要验证数据的完整性。 sha算法比MD5算法安全,但所需的时间也稍长。 1、原始消息摘要 2、加盐(salt)后摘要 由于同一个消息通过摘要 阅读全文

posted @ 2016-11-03 16:02 苍松 阅读(5328) 评论(0) 推荐(0) 编辑

python 内置模块之logging
摘要:1、将日志直接输出到屏幕 2.通过logging.basicConfig函数对日志的输出格式及方式做相关配置 logging.basicConfig参数: 3、将日志同时输出到多个Handler 先定义一个住handler,并使用addHander()添加到主handler,实现日志输出到多个han 阅读全文

posted @ 2016-11-02 16:58 苍松 阅读(801) 评论(0) 推荐(0) 编辑

python 内置模块之os、sys、shutil
摘要:一、OS模块 用于提供系统级别的操作。 更多猛击这里 二、SYS模块 用于提供对解释器相关的操作 更多猛击这里 import sys print "script name is", sys.argv[0] # 使用sys.argv[0]采集脚本名称 if len(sys.argv) > 1: # 使 阅读全文

posted @ 2016-11-01 15:03 苍松 阅读(417) 评论(0) 推荐(0) 编辑

python 序列化之JSON和pickle详解
摘要:JSON模块 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、Java、JavaScript、Perl、Python等)。这 阅读全文

posted @ 2016-10-27 18:22 苍松 阅读(18350) 评论(0) 推荐(5) 编辑

python with语句上下文管理的两种实现方法
摘要:在编程中会经常碰到这种情况:有一个特殊的语句块,在执行这个语句块之前需要先执行一些准备动作;当语句块执行完成后,需要继续执行一些收尾动作。例如,文件读写后需要关闭,数据库读写完毕需要关闭连接,资源的加锁和解锁等情况。对于这种情况python提供了上下文管理器(Context Manager)的概念, 阅读全文

posted @ 2016-10-27 14:53 苍松 阅读(5184) 评论(0) 推荐(0) 编辑

python time模块和datetime模块详解
摘要:一、time模块 time模块中时间表现的格式主要有三种: a、timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量 b、struct_time时间元组,共有九个元素组。 c、format time 格式化时间,已格式化的结构使时间更具可读性。包括自定义格 阅读全文

posted @ 2016-10-26 23:37 苍松 阅读(91462) 评论(0) 推荐(12) 编辑

python 迭代器和生成器详解
摘要:一、迭代器 说迭代器之前有两个相关的名词需要介绍:可迭代对象:只要定义了__iter__()方法,我们就说该对象是可迭代对象,并且可迭代对象能提供迭代器。迭代器:实现了__next__()或者next()(python2)方法的称为迭代器,迭代器仅仅在迭代到某个元素时才计算该元素,而在这之前或之后, 阅读全文

posted @ 2016-10-21 11:55 苍松 阅读(4351) 评论(0) 推荐(1) 编辑

Django之Model(一)--基础篇
摘要:0、数据库配置 django默认支持sqlite,mysql, oracle,postgresql数据库。Django连接数据库默认编码使用UTF8,使用中文不需要特别设置。 mysql引擎配置: 'defaults': { 'ENGINE': 'django.db.backends.mysql', 阅读全文

posted @ 2016-10-06 16:28 苍松 编辑

tornado自定义分页扩展
摘要:一、分页扩展类 #! /usr/bin/env python # -*- coding:utf-8 -*- # __author__ = "TKQ" class Pagination: def __init__(self,current_page,all_item,base_url='',per_p 阅读全文

posted @ 2016-09-17 17:11 苍松 阅读(687) 评论(0) 推荐(0) 编辑

AJAX请求和跨域请求详解(原生JS、Jquery)
摘要:一、概述 AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。 AJAX = 异步 JavaScript 和 XML,是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进 阅读全文

posted @ 2016-09-15 23:49 苍松 阅读(22014) 评论(4) 推荐(3) 编辑

python装饰器总结
摘要:一、装饰器是什么 python的装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。简单的说装饰器就是一个用来返回函数的函数。 它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。装饰器是解 阅读全文

posted @ 2016-09-09 14:33 苍松 阅读(552) 评论(0) 推荐(0) 编辑

python自定义线程池
摘要:关于python的多线程,由与GIL的存在被广大群主所诟病,说python的多线程不是真正的多线程。但多线程处理IO密集的任务效率还是可以杠杠的。 我实现的这个线程池其实是根据银角的思路来实现的。 主要思路: 任务获取和执行: 1、任务加入队列,等待线程来获取并执行。 2、按需生成线程,每个线程循环 阅读全文

posted @ 2016-07-27 16:54 苍松 阅读(1206) 评论(0) 推荐(0) 编辑

python--gevent协程及协程概念
摘要:何为协程 协程,又称微线程。英文名Coroutine。 协程最大的优势就是协程极高的执行效率。因为子程序切换不是线程切换,而是由程序自身控制,因此,没有线程切换的开销,和多线程比,线程数量越多,协程的性能优势就越明显。 第二大优势就是不需要多线程的锁机制,因为只有一个线程,也不存在同时写变量冲突,在 阅读全文

posted @ 2016-07-27 15:31 苍松 阅读(7793) 评论(0) 推荐(0) 编辑

python--multiprocessing多进程总结
摘要:由于GIL的存在,python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程。Python提供了非常好用的多进程包multiprocessing,只需要定义一个函数,Python会完成其他所有事情。借助这个包,可以轻松完成从单进程到并发 阅读全文

posted @ 2016-07-27 14:55 苍松 阅读(57389) 评论(0) 推荐(3) 编辑

python--threading多线程总结
摘要:threading用于提供线程相关的操作,线程是应用程序中工作的最小单元。python当前版本的多线程库没有实现优先级、线程组,线程也不能被停止、暂停、恢复、中断。 threading模块提供的类: Thread, Lock, Rlock, Condition, [Bounded]Semaphore 阅读全文

posted @ 2016-07-27 14:47 苍松 阅读(238055) 评论(11) 推荐(9) 编辑

导航