随笔分类 - python
摘要:本文主要介绍logging模块的快速使用方法,如果需要深入的定制,请参考(http://docs.python.org/2/howto/logging-cookbook.html) 1 import logging 2 3 logging.basicConfig(format='[%(asctime)s] '+logging.BASIC_FORMAT) 4 5 # logging.BASIC_FORMAT = "%(levelname)s:%(name)s:%(message)s" 6 7 log = logging.getLogger(__name__)
阅读全文
摘要:概述python的程序有两中退出方式:os._exit(), sys.exit()。本文介绍这两种方式的区别和选择。os._exit()会直接将python程序终止,之后的所有代码都不会继续执行。sys.exit()会引发一个异常:SystemExit,如果这个异常没有被捕获,那么python解释器将会退出。如果有捕获此异常的代码,那么这些代码还是会执行。举例说明1 import os2 3 try:4 os._exit(0)5 except:6 print 'die.'此处不会打出"going to die"import systry: sys.exit(
阅读全文
摘要:上面的代码整理自 nova/compute/manager.py 代码的顺序有改动,只是为了方便查看,完整的代码可以参考:https://github.com/openstack/nova/blob /master/nova/compute/manager.py虚拟机的创建流程为3步走:向nova-network申请IP向nova-volumn申请block_device向driver申请创建虚拟机同时伴随整个过程,虚拟机的vm_state始终是building,但是task_state将会变化三次:networkingblock_device_mappingspawing最后,虚拟机的vm_
阅读全文
摘要:使用qmeu-img管理虚拟机磁盘镜像(创建虚拟机,虚拟机快照)一台虚拟机的核心就是一个磁盘镜像,这个镜像可以理解成虚拟机的磁盘,里面有虚拟机的操作系统和驱动等重要文件。本文主要介绍创建虚拟机的一般过程。创建虚拟机镜像要在一台host上跑起一个虚拟机一般需要两个步骤:第一步:创建虚拟机镜像qemu-img create -f raw /images/vm1.raw 8Gqmeu-img创建的镜像是一个稀疏文件,也就是说刚创建出来的文件并没有8G,它会随着数据的增多慢慢增加,直到8G第二步:启动虚拟机kvm /imges/vm1.raw运行结果: 因为镜像里面没有任何内容,所以提示找不到可引导设
阅读全文
摘要:amazon s3的用户验证方式是一种对称加密方式,下面介绍此加密方式。请求的构造 请求元素: AWS Access Key Id:其实就是常见的用户名,用来区分用户的。 Signature:签名,使用私钥计算后得出。 Timestamp:时间戳 Date:时间,为每一个请求设置一个过期时间。验证过程 客户端:经过下面3个步骤1 构建http请求。2 使用请求内容(request_str) 和 secret-key计算签名(signature)。3 发送请求到aws服务器。 aws服务器:经过下面三个步骤4 Amazon S3 根据发送的access-key得到对应的secret...
阅读全文
摘要:python下的调试工具:pdbpython -m pdb your_python_script.py或者图形化的工具winpdb
阅读全文
摘要:前言在python中的列表操作主要有两种,一种类似于lisp的函数编程方法:filter( function,list) , map( function, list)另一种特别pythonic——列表推导 [ i for i in list ]现在就两种方法进行对比,看看哪种效率高filter 和 列表推导file: filter-1.py 1#coding=utf-8 2 import time 3 4 list = [i for i in range(1,50000)] 5 start = time.time() 6 for i in range(0,1000): 7 l...
阅读全文
摘要:上一期完理解了WSGI处理思路,现在看看django是如何实现这个接口的。django.core.handlers在此模块中着重看两个文件:base.py, wsgi.py首先从宏观上看主要涉及到的类:而当我们运行了manage.py runserver后,将会生成一个进程来运行WSGIHandler实例,来响应用户的请求,其实WSGIHandler就是一个上篇提到的app。好了,现在关键就是WSGIHandler的__call__方法。WSGIHandler.__call__代码如下(可现暂时略过):View Code def __call__(self, environ, start_re
阅读全文
摘要:前言Django是一个开放源代码的Web应用框架,她像一个工具箱,包括了整个web开发中的各种技术,例如ORM,Template等。这是在阅读django的源码中作的笔记。首先需要简要介绍以下WSGI。WSGI基本概念wsgi是Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。 在此接口中有两个方面,一个web应用程序类比java中的war包,一个是web服务器类比tomcat,apache。在这里我们只关注web应用程序。 参考http://www.python.org/dev/peps/pep-0333/在此接口中定义了一个服务器和应用程序通信的方法:#f
阅读全文

浙公网安备 33010602011771号