Python鸡汤
标准库
很正确
外部库
有一些风险,可能有bug,可能文档不全,可能长时间未更新。
ipython
1 pip 这应该是安装Python后第一个需要的命令
pip install -i
-i, --index-url
--extra-index-url
eg
pip install -i https://a.com --extra-index-url=https://b.com
2 pip-tools
git地址
https://github.com/jazzband/pip-tools
http://nvie.com/posts/pip-tools-10-released/
pip-tools = pip-compile + pip-sync
在pip-tools 这个模块里有两个命令 pip-compile + pip-sync
pip-compile requirements.in
将你需要的包 写入 requirements.in ,这个命令会生成一个文件叫 requirements.txt ,里面有具体这些包最新的版本号,
以及关联依赖的其他包。
这个命令并不会 真的安装包,而是预告一下要安装的包,以及预计安装的版本。
pip-sync requirements.txt 会把requirements.txt文件中的 对应版本号的包下载回来。
pip-sync 真的就是在执行安装了。
3 py.test
py.test -s
-s 的意思是 不捕捉所有的输出。 这样你在终端上是看不到程序中 print打印出的内容
您可以使用 pytest -s --pdb 在测试失败的时候自动进入 pdb 进行调试。
4 sphinx-build 文档
http://www.sphinx-doc.org/en/stable/
5 honcho
honcho 默认会在当前目录下 ,找一个叫 .env 的文件作为 环境变量 加载, 然后再运行程序。
output缓冲, honcho默认会缓冲print到终端的输出 ,如果你发现有的程序中的print语句看不见 ,就是这个原因,
解决办法是 在.env 里加入PYTHONUNBUFFERED=true
6 flask_script
flask_script 会制造出一些命令一样的东西 ,其实就是 运行程序的参数。
7 profiler Python性能分析器
restrictions, 打印限制策略。
8
用gunicorn包装 flask,提供更强的性能
9 python-envcfg
会用环境变量中的 值 制造一些模块
https://github.com/tonyseek/python-envcfg
envcfg.smart.xapp 如这个模块 ,会用 环境变量中 XAPP_ 开头的作为 属性。
10 flask
flask 会读取 环境变量中的 DEBUG 来确定 debug 模式
blueprint 是一个 管理url 路由的东西。
assert 断言
格式化字符串
bp_name = '{version} . {name}'.format(version=version, name=name)
Flask
Flask.blueprint
http://docs.jinkan.org/docs/flask/quickstart.html
http://flask.pocoo.org/docs/0.12/quickstart/
python学习之self,cls,staticmethod,classmethod
Python进阶之“属性(property)”详解
http://python.jobbole.com/80955/
honcho 进程和环境变量管理
https://pypi.python.org/pypi/honcho/
python-envcfg
https://github.com/tonyseek/python-envcfg
flask_script
http://flask-script.readthedocs.io/en/latest/
gunicorn 服务器
用gunicorn和gevent提高python web框架的性能
【Pytest】python单元测试框架pytest简介
Flake8简介
http://www.malike.net.cn/blog/2013/10/23/flake8-tutorial/
python项目打包发布总结
package
enum
什么是猴子补丁(monkey patch)
UUID https://docs.python.org/3/library/uuid.html
es python client 文档
http://elasticsearch-py.readthedocs.io/en/master/index.html
flake8
hacking flake8的扩展
装饰器作为修改函数的一种便捷方式。 装饰器本质就是一个函数
dict
pop
In [53]: a['b'] = 'b2'
In [54]: a.pop('b', 'replace')
Out[54]: 'b2'
In [55]: a.pop('b', 'replace')
Out[55]: 'replace'
pop一个不存在的key,且没有默认值会抛出 KeyError
- mixin 一般是基类的名字,这个类是用来继承的,不能实例化,是有功能,表示can do ,这不就是java中的接口吗
__init__.py
表示文件夹是一个包, 用于导入 其中应有一个 all 的数组- Python tips: 什么是*args和**kwargs? 两个可变参数
http://www.cnblogs.com/fengmk2/archive/2008/04/21/1163766.html - 装饰器是一个函数 def, 这个函数是用来修改函数的,所以这个函数里面会还有一个函数def, 有时,装饰器也是带参数的,这时,就现需要生成一个装饰器的函数,这时候,就会有三个def, 不会再多了。
- functools http://www.wklken.me/posts/2013/08/18/python-extra-functools.html
- base64
https://stackoverflow.com/questions/8908287/base64-encoding-in-python-3 - mock
https://segmentfault.com/a/1190000002965620