WebOb WSGI request and response objects
WebOb is a Python library that provides wrappers around the WSGI request environment, and an object to help create WSGI responses. The objects map much of the specified behavior of HTTP, including header parsing, content negotiation and correct handling of conditional and range requests.
WebOb 第三方python库,是针对 HTTP 请求和响应的面向对象的接口。
优点:
WebOb屏蔽了WSGI的细节。
Python Paste
Paste Deployment is a system finding and configuring WSGI applications and servers.
Paste Deploy is released under the MIT license.
Python base64 模块基本概念
base64是网络上最常见的用于传输8bit字节代码的编码方式之一。
Python base64模块是用来作base64编码解码的。这种编码方式在电子邮件中很常见,它可以把不能作为文本显示的二进制数据编码为可显示的文本信息。编码后文件会增大1/3.
Python base64模块真正能用的上的方法只有8个,分别是encode ,decode , encodestring ,decodestring ,b64encode,b64decode,urlsafe_b64decode,urlsafe_b64encode .
分成四组:encode , decode 一组,专门用来编码和解码文件的,也可以对StringIO里的数据做编解码。
encodestring,decodestring一组,专门用来编码和解码字符串。
b64encode和b64decode一组,用来编码和解码字符串,并且有一个替换符号字符的功能。
urlsafe_b64encode和urlsafe_b64decode 一组,这个就是用来专门对url进行base64编解码的 。
attention : base64编码后的字符除了英文字母和数字外还有三个字符:+ / = ,其中=只是为了补全编码后的字符数为4的整数,而+ /在一些情况下是被替换的,b64encode和b64decode正是提供了这样的功能。最常见的就是对url进行base64编码时候,,urlsafe_b64encode和urlsafe_b64decode 一组,实际上是调用前一组函数
Python sys.argv[] 使用方法
sys.argv[] 是用来获取命令行参数的。sys.argv[0]表示代码本身文件路径。所以argv[]参数从1开始。 例如,在cmd中输入“python text.py --version”,那么sys.argv[0]就代表text.py 。
Python 内建类型:Number类型 ,String类型, list类型。
list comprehension ,是利用其他列表创建新的列表(相当于数学中的集合推导式)。
In [39]: [x*x for x in range(10)] Out[39]: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
如果只想打印出那些能被3整除的平方数,只需要通过添加一个if部分在推导式中就可以完成:
In [41]: [x*x for x in xrange(10) if x % 3 == 0] Out[41]: [0, 9, 36, 81]
也可以增加更多的for语句的部分:
In [42]: [(x,y) for x in range(3) for y in range(3)] Out[42]: [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)] In [43]: [[x,y] for x in range(2) for y in range(2)] Out[43]: [[0, 0], [0, 1], [1, 0], [1, 1]]
python 实例属性VS类属性
类和实例都是名字空间。类是类属性的名字空间,实例则是实例属性的。
注意:给一个与类属性同名的实例属性赋值,会有效的“隐藏”类属性,但是一旦删除,则类属性又重见天日。
Python 静态方法和类方法(staticmethod & classmethod)
python在类中,有三种调用method的方法:普通method,staticmethod和classmethod 。
class TestStaticMethod: def foo(): print("hello, static !") foo = staticmethod(foo) #静态方法 class TestClassMethod: def foo(cls): #cls ,类作为参数,而不是self print("calling class method foo") print("foo is part of class :", cls.__name__) foo = classmethod(foo) # 类方法重点是classmethod:
当作第一个参数传入。python中class也是个真实地存在于内存中的对象,而不是静态语言中只存在于编译期间的类型。
使用函数修饰符达到上面的效果:@staticmethod @classmethod
class TestStaticMethod: @staticmethod #修饰符 def foo(): print("hello, static !") class TestClassMethod: @classmethod def foo(cls): print("calling class method foo") print("foo is part of class :", cls.__name__)