代码改变世界

随笔分类 - python

Python时区设置与pytz的应用

2013-01-06 11:32 by JustRun, 1709 阅读, 收藏, 编辑
摘要: 时区的概念与转换首先要知道时区之间的转换关系,其实这很简单:把当地时间减去当地时区,剩下的就是格林威治时间了。 例如北京时间的18:00就是18:00+08:00,相减以后就是10:00+00:00,因此就是格林威治时间的10:00。而把格林威治时间加上当地时区,就能得到当地时间了。 例如格林威治时间的10:00是10:00+00:00,转换成太平洋标准时间就是加上-8小时,因此是02:00-08:00。而太平洋标准时间转换成北京时间转换也一样,时区相减即可。 例如太平洋标准时间的02:00-08:00,与北京时间相差-16小时,因此结果是18:00+08:00。Python时区的处理发现py 阅读全文

python中使用and和or来实现其它语言中的?号表达式

2012-10-28 14:59 by JustRun, 476 阅读, 收藏, 编辑
摘要: python中的and和or和其它语言的区别很大其它语言中的and和or都是返回bool类型的结果,python不是。它返回的是做and和or运算的其中一个值。那个值决定了这个表达式的值,就返回那个值。>> 5 and ‘’这里结果是'', 空字符串, 因为是它导致了这个表达式为false.也就是所在and中,只有前面一个值是false的时候,才有可能成为结果。否则就是后面的值为结果。了解了and和or运行的过程,那么就可以实现?表达式了:if (expression): return truevalueelse: return falsevalue和这个等价的写法 阅读全文

pyramid中session配置

2012-09-10 21:38 by JustRun, 1184 阅读, 收藏, 编辑
摘要: 参照 http://docs.pylonsproject.org/projects/pyramid_beaker/en/latest/1. 使用默认的session, 在ini文件中:from pyramid.session import UnencryptedCookieSessionFactoryConfigmy_session_factory = UnencryptedCookieSessionFactoryConfig('itsaseekreet')from pyramid.config import Configuratorconfig = Configurator( 阅读全文

python使用setup.py安装后如何卸载

2012-09-08 21:42 by JustRun, 7871 阅读, 收藏, 编辑
摘要: 我们尝尝使用 python setup.py install 来安装python包,但是如何卸载呢?只能手动删除安装的文件可以使用如下命令python setup.py install --record files.txt 记录安装后文件的路径 cat files.txt | xargs rm -rf 删除这些文件 阅读全文

python的编码问题总结

2012-09-02 22:24 by JustRun, 858 阅读, 收藏, 编辑
摘要: 问题一:当python中间处理非ASCII编码时,经常会出现如下错误: UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128) 0x??是超出128的数字,python在默认的情况下认为语言的编码是ascii编码,所以无法处理其他编码,需要设置python的默认编码为所需要的编码。 一个解决的方案是在代码中添加: import sys reload(sys) sys.setdefaultencoding('gb2312 阅读全文

在Pyramid的Mako模板中引入helper

2012-09-02 12:30 by JustRun, 346 阅读, 收藏, 编辑
摘要: Pylons中的mako模板,默认会引入一个helper对象,我们可以在里面扩展方法,应对在模板输出时候会常用的操作,那么在Pyramid中如何默认引入同样的辅助类到模板中。原理是我们在pyramind的before render event 中插入我们的helper1. 创建helper.py文件,在里面添加上我们常用的方法2. 在__init__.py文件中:加入这个函数:def add_renderer_globals(event): event['h'] = helpers在main函数中config.add_subscriber(add_renderer_global 阅读全文

在Pyramid中使用Mako模板以及默认和.html后缀关联

2012-09-02 12:15 by JustRun, 760 阅读, 收藏, 编辑
摘要: Pyramid默认使用Chameleon ZPT模板,从pylons转过来的比较习惯mako模板。在Pyramid如何更改模板引擎呢?1. 在配置文件development.ini中,添加上:mako.directories = [project name]:[root path]project name是你项目的名称root path 是你模板文件存放的根目录跟多关于mako的设置: mako-template-render-settings2. 修改项目的__init__.py文件,在main函数中添加上:config.add_renderer('.html', ' 阅读全文

Pyramid中如何将models.py文件的内容分布到多个文件中

2012-08-22 15:10 by JustRun, 404 阅读, 收藏, 编辑
摘要: 默认的Pyramid代码结构中,就只有一个models.py文件,在实际项目中,如果需要对models进行分类,放到不同文件下,应该怎么办? 我们通过下面的文件结构,将models.py改成一个package. myapp __init__.py scripts __init__.py initialize_db.py models __init__.py meta.py foo.py moo.py上面的 meta.py, 在代码中定义一个其它model文件共享Base和DBSes... 阅读全文

pyramid安装和开始

2012-08-13 17:29 by JustRun, 847 阅读, 收藏, 编辑
摘要: 在linux环境下安装pyramid和开始一个项目:1. 安装python虚拟环境virtualenv --no-site-packages env2. 安装pyramid $ env/bin/easy_install pyramid 3. 使用alchemy模板,创建一个项目pcreate -s alchemy MyProject 4. 安装项目的依赖 python setup.py develop 5. 运行单元测试 python setup.py test –q6. 安装初始化数据库脚本 env/bin/initialize_[projectname]_d... 阅读全文

如何为Pyramid添加Middleware

2012-07-22 16:33 by JustRun, 352 阅读, 收藏, 编辑
摘要: 在pylons的文档中,有专门讲过如何添加自己的Middleware, 通过这些Middleware, 我们可以改变输入和输出。这也是WSGI(Web Server Gateway Interface)的优势和精髓所在。那么在pyramid中,我们如何添加Middleware呢?假设我们要添加一个我们自己的Middleware, 用来记录每次请求的日志下面就是一个符合规范的Middleware, 构造函数中接受一个WSGI APP, __call__返回一个WSGI APP.class LoggerMiddleware(object): '''WSGI middlewa 阅读全文

Pyramid中如何配置多种URL匹配同一个View

2012-07-22 09:26 by JustRun, 477 阅读, 收藏, 编辑
摘要: 在pylons中,通过配置Route可以很容易地配置不同的URL指向同一个controller的Action.map.connect('/:page/category{categoryid}/pageindex{pageindex}/{id}', controller='front',action='index')map.connect('/:page/category{categoryid}/pageindex{pageindex}/{id}/', controller='front',action='i 阅读全文

pylons中常用的paster命令

2009-12-17 23:17 by JustRun, 738 阅读, 收藏, 编辑
摘要: paster create -t pylons helloworld 创建一个以pylons为模板的项目,项目名字是helloworldpaster create --list-templates 显示当前的pylons中有多少可以使用的模板paster serve --reaload development.ini最常用的命令了,启动调式程序的时候都会使用得到它。paster controller helloworld常见一个新的controller,名字是helloworld.会在项目目录controller中生成一个hellowolrd.py文件。这个是一个最基本的controller文 阅读全文

使用python写的如何自动提交和抓取网页

2009-06-16 20:33 by JustRun, 824 阅读, 收藏, 编辑
摘要: 最近在研究怎么样做个自动发帖器,要完成这个工具难度蛮大的,验证码就是一个大问题(还没有想到解决办法哦,不管了),先要解决的是如何抓取,分析和提交页面的问题。下面是用python写的,使用lxml来做html分析,从网上看到的,说是分析速度最快的哦,不过没有验证过。好了,上代码。import urllibimport urllib2import urlparseimport lxml.htmldef url_with_query(url, values): parts = urlparse.urlparse(url) rest, (query, frag) = parts[:-2], parts 阅读全文