随笔分类 -  Python

摘要:在flask.app模块里,__call__方法会调用wsgi_app方法 这个方法如下: 首先,request_context方法会返回一个RequestContext类的实例,这个实例是用传入的app,environ初始化的 RequestContext的初始化过程如下: 去掉了注释,这里有几个 阅读全文
posted @ 2018-08-20 13:10 geeklove
摘要:flask app.py 首先,初始化Flask,绑定一些属性,得到一个flask app 然后调用app的run方法,call procedure如下: run(flask.app) -> run_simple(werkzeug.serving) -> make_server(werkzeug.s 阅读全文
posted @ 2018-08-18 14:38 geeklove
摘要:ref: https://github.com/bottlepy/bottle/commit/fa7733e075da0d790d809aa3d2f53071897e6f76 下面实现了一个装饰器类,可以用它来给别的属性设置过期时间 Test Case: 阅读全文
posted @ 2018-08-06 15:42 geeklove 阅读(264) 评论(0) 推荐(0)
摘要:根据文档(https://docs.python.org/2/tutorial/controlflow.html#more-on-defining-functions) 介绍了三种方法 1 Default Argument Values The most useful form is to spec 阅读全文
posted @ 2018-06-01 16:39 geeklove 阅读(217) 评论(0) 推荐(0)
摘要:官方文档对于"__main__"的回答(ref: https://docs.python.org/2/library/__main__.html): 也就是说,当解释器的主项目执行的时候,使用__main__来指示代码的执行范围。执行主项目的命令可以来自标准输入(python xxx.py),脚本文 阅读全文
posted @ 2018-05-16 13:26 geeklove 阅读(220) 评论(0) 推荐(0)
摘要:ref:http://heipark.iteye.com/blog/1743819 在下面这个例子里: 逻辑上讲,set中的两个对象是貌似相同的,那么set中应该只有一个对象 实际上不是这样 set是根据两个元素的hash value判断这两个对象是不是相同的。元素的hash value是通过has 阅读全文
posted @ 2018-05-13 19:51 geeklove 阅读(1718) 评论(0) 推荐(0)
摘要:ref: https://docs.python.org/release/2.6/whatsnew/2.6.html#pep-343-the-with-statement https://www.ibm.com/developerworks/cn/opensource/os-cn-pythonwit 阅读全文
posted @ 2018-05-12 15:50 geeklove 阅读(2855) 评论(0) 推荐(0)
摘要:1.1(ref:http://hbprotoss.github.io/posts/python-descriptor.html)首先介绍下__dict__ 举例: print A.__dict__ a = A(5)print a.__dict__ 输出如下: 可以看到,A包含所有方法和类全局的变量( 阅读全文
posted @ 2018-05-10 21:02 geeklove 阅读(156) 评论(0) 推荐(0)
摘要:http://www.cnblogs.com/xybaby/p/6270551.html https://docs.python.org/2/howto/descriptor.html (ref: https://stackoverflow.com/questions/865911/is-every 阅读全文
posted @ 2018-04-18 21:27 geeklove 阅读(225) 评论(0) 推荐(0)
摘要:首先,sns = Simple Notification Service,sqs = Simple Queue Service sns与sqs有什么不同? (ref:https://stackoverflow.com/questions/13681213/what-is-the-difference 阅读全文
posted @ 2018-04-16 21:16 geeklove 阅读(1916) 评论(0) 推荐(0)
摘要:app context,应用上下文,存储的是应用级别的信息,比如数据库连接信息。 request context,程序上下文,存储的是请求级别的信息,比如当前访问的url 按照官方文档,有两种方式创建一个app context:一是当一个请求到来,这时候request context创建,app c 阅读全文
posted @ 2018-04-14 17:58 geeklove 阅读(3381) 评论(0) 推荐(0)
摘要:今天遇到了Python浮点数处理的一个问题:比如,如果在代码中这样写: 输出 47.05, 这是正确的 但是,在Python Shell中,却得到了这样一个结果: 在实际的项目中,如果我们要计算这样一个东西并把它存在数据库中, 那么存的实际上是一个后者所示的小数位很多的浮点数。而并不是我们认为的前者 阅读全文
posted @ 2018-04-10 19:42 geeklove 阅读(1704) 评论(0) 推荐(0)
摘要:Python中的defaultdict可用于给所有的key赋一个默认的value 这样当访问的key对应的value不存在的时候,可以返回一个默认值 一些defaultdict的用法: defaultdict的实现使用了魔术方法:__missing__() 通过如下操作: 可以看出当使用__geti 阅读全文
posted @ 2018-04-08 23:51 geeklove 阅读(2963) 评论(0) 推荐(0)
摘要:首先介绍一点前端的东西: 在前端操作中,让用户填写一个表单,上传一个文件,是一种常见的操作。 通常前端会用一种类似下面的方式将这些信息传到后端: 分析这种格式,首先可以看到,不同部分之间是使用Boundary隔离开的。 对Flask构建的后端来说,如何获取前端上传的这些信息呢?使用request即可 阅读全文
posted @ 2018-04-06 20:15 geeklove 阅读(441) 评论(0) 推荐(0)
摘要:无论是使用for还是while,当在从前往后遍历的同时删除列表中的元素时,都会发生些问题。 要从lst = [1,4,0,1,5,0,3,5]中删除所有0元素,有两个比较好的方法: 1 使用filter: lst = filter(lambda x : x != 0, lst) 2 使用列表解析: 阅读全文
posted @ 2018-04-06 18:16 geeklove 阅读(330) 评论(0) 推荐(0)
摘要:理解装饰器需要闭包的知识 https://segmentfault.com/a/1190000004461404 理解闭包: This value in the enclosing scope is remembered even when the variable goes out of scop 阅读全文
posted @ 2018-03-25 17:38 geeklove 阅读(184) 评论(0) 推荐(0)
摘要:1.关于local python中有threading local处理方式,在多线程环境中将变量按照线程id区分 由于协程在Python web中广泛使用,所以threading local不再满足需要 local中优先使用greenlet协程,其次是线程id,如下所示: 另外local中定义了一个 阅读全文
posted @ 2018-03-11 00:22 geeklove 阅读(737) 评论(0) 推荐(0)
摘要:如果让程序阻塞在IO操作,会浪费时间和CPU资源。 gevent是Python中用来实现协程的工具。使用gevent,当发生阻塞的时候,会把程序控制权转移出去。 gevent是如何实现当阻塞时交出CPU控制权的呢?它把Python中的许多阻塞操作(如sleep,select,控制网络操作的socke 阅读全文
posted @ 2018-03-07 20:36 geeklove 阅读(297) 评论(0) 推荐(0)
摘要:1.*nix系统上有一个地方专门有一个地方来放置安装的Python模块 比如在Mac上,这个目录的路径为: /usr/lib/python2.7 将要安装的文件拷贝到这里即可 2.下载模块包,解压后,进入到setup.py文件所在的目录 运行: python setup.py install 3. 阅读全文
posted @ 2018-01-14 16:39 geeklove 阅读(351) 评论(0) 推荐(0)
摘要:将我们写的Python程序发布成包后,可以使其能够安装使用。 在项目上测试的时候,某些情况下,可以将Python打包,然后上传到测试服务器,安装测试。 setuptools是常用的打包工具。 一个简单的setup.py文件如下: 其中,name是包的名字,version是版本。 给packages指 阅读全文
posted @ 2018-01-14 16:07 geeklove 阅读(14176) 评论(0) 推荐(0)