
Python
文章平均质量分 62
d_yang
啥都懂, 啥都不精通.
展开
-
自制Openerp图表
注意:1. 本文介绍一种简单的,非通用的改进openerp的思路。并非一定要取代原有方式。2. 本文会修改web_graph模块,如果在你的项目里使用了这个模块,请避免修改,以防止异常。3. 本文基于openerp 6.1通过本文,你可以知道:1. web_graph的运行机制。2. 如何动手修改这个模块。看看这个模块的结构:客户端采用的是highcha原创 2012-09-01 11:11:44 · 5247 阅读 · 2 评论 -
Twisted TimerService的使用(以及由此带来的诡异事件)
TimerService是twisted里提供的一个对loopingcall的service封装。是在服务运行的期间反复执行某个方法的手段。 文档里没有,其实也很简单。 #! /usr/bin/python# -*- coding: utf-8 -*-Created on May 5, 2009@author: Danielfro原创 2009-05-05 15:28:00 · 3325 阅读 · 0 评论 -
Trivial About Apache+mod_wsgi+TG2
1. Apache2启动时找不到mod_wsgi:mod_wsgi没ln到正确的文件上ln -s /usr/lib/apache2/modules/mod_wsgi.so /usr/lib/apache2/modules/mod_wsgi.so-2.5 2. cPickle.so:: PyUnicodeUCS2_DecodeUTF8错误Python编译的参数,和Python m原创 2009-04-30 13:56:00 · 1259 阅读 · 0 评论 -
Twistd一个诡异的地方
有个不好的习惯,老喜欢用root帐号。运行twistd程序的时候,代码老是报错,找不到包之类的。无意中看到:http://linux.die.net/man/1/twistdNote that if twistd is run as root, the working directory is not searched for Python modules.是否是这原创 2009-05-02 10:27:00 · 2519 阅读 · 1 评论 -
笔记:timeit使用
需要做benchmark,非web程序。用python自带的timeit模块。 代码: #! /usr/bin/python# -*- coding: utf-8 -*- import xmlrpclib, timeit t = timeit.Timer("s.interprete(三里庵的贵人香)", "import xmlrpclib/ns原创 2009-04-28 17:53:00 · 1437 阅读 · 0 评论 -
笔记:安装Stackless
aptitude install libreadline-dev./configure --prefix=/opt/stackless --with-readline --with-zlib=/usr/includemakemake install原创 2009-04-24 21:48:00 · 1640 阅读 · 0 评论 -
Twisted.web的性能测试
想了解一下twisted单独作为web服务器的性能。 所以用webpy写一个简单的页面,挂上twisted的wsgi跑一下。测试代码:import webfrom twisted.web2 import wsgi,server, channel, staticfrom twisted.application import service, strportsurls =原创 2009-04-26 13:36:00 · 3922 阅读 · 1 评论 -
Concurrence系列-远程调用
Concurrence的文档里没有提到这个系列的方法。我还是从unittest里找到的。 经过一番折腾,加上和作者的交流。现在大概能run的起来了。 远程调用,要使用concurrence.remote包下的RemoteServer, RemoteTasklet, RemoteClient三个对象。 过程是这样,服务端要用RemoteServer来启动一个服务,绑原创 2009-04-24 15:23:00 · 974 阅读 · 0 评论 -
Concurrence系列-HTTP
服务端 from concurrence import dispatchfrom concurrence.http import WSGIServerdef hello_world(environ, start_response): start_response("200 OK", []) return ["Hello, world!"]def main()原创 2009-04-23 16:16:00 · 660 阅读 · 0 评论 -
Concurrence系列-Message使用
Concurrence里最基本的执行单位是Tasklet,最基本的通信(单位)就是Message了。很清晰。 Message是这样定义的:class MSG_XXX(Message): pass 从命名规则上讲,习惯把Message声明为 MSG_开头的。 每个Tasklet都会有一个mailbox, 用来接收其他task发来的Message。 Taskle原创 2009-04-23 15:22:00 · 796 阅读 · 0 评论 -
Concurrence系列-Tasklet使用
Concurrence框架中,最小的执行单位就是tasklet了。 创建一个Tasklet from concurrence import dispatch, Taskletdef greeting(msg): print msgdef start(): Tasklet.new(greeting)("Hello") Taskl原创 2009-04-23 14:48:00 · 836 阅读 · 0 评论 -
Twisted Cron的用法
可以像使用linux下cron那样使用twisted的scheduling.http://code.google.com/p/twistedcronservice/ 不过我更喜欢用twisted自己的Scheduling utility http://twistedmatrix.com/trac/browser/trunk/twisted/internet/task.py加上C原创 2009-04-30 16:47:00 · 2787 阅读 · 0 评论 -
Athena LivePage的页面刷新异常和解决方法
Athena的LivePage对象很好用,但是在刷新的时候,会有一个异常:exceptions.AssertionError: Cannot render a LivePage more than once 官方说法是: LivePage instances maintain server-side state that corresponds to the connection原创 2009-05-07 14:05:00 · 2216 阅读 · 0 评论 -
用wizard导入excel数据
作为一个quick note吧。OE里的csv导入数据功能形同摆设,通俗地说就是弱爆了。今天尝试一下用excel文件来导入数据。在python里读取excel格式的lib很多,这里我选用的是xlrd。上代码先:# -*- coding: utf-8 -*-from osv import osv, fieldsimport time, xlrd, base64原创 2012-09-01 11:05:37 · 3553 阅读 · 0 评论 -
实现Web Client上的html报表直接打印
读了一下openerp新版本的代码,的确有不少的改进。尤其是web client,基本上是推倒重写的。看官方的论坛上很多人在问如何在web client上实现报表的直接打印,想想现在的打印的确是不方便,总是把文件下载下来,然后打开文件打印。html的报表容易想到,因为可以直接在web client打开一个新窗口,用js进行打印。于是就改改openerp代码,实现一个简单的html报表的。供原创 2012-03-30 13:18:14 · 4323 阅读 · 0 评论 -
爬取双色球的开奖记录
<br />需要twisted, pymongo,BeautifulSoup.<br /> <br />#!/usr/bin/env python# encoding: utf-8"""lott.pyCreated by Daniel Yang on 2011-01-23.Copyright (c) 2011 Yang. All rights reserved."""import sysimport osfrom twisted.internet import react原创 2011-01-26 16:17:00 · 3041 阅读 · 0 评论 -
合肥公交换乘模块开发实录 -- 获取/处理数据
[实况转播]Kick start with 合肥公交换乘模块原创 2010-12-16 18:15:00 · 5189 阅读 · 0 评论 -
Trouble with flex file-uploading and twisted.web2 FileSaver(烙铁)
<br />用Flex的FileReference来把文件post到twisted.web2写得服务端,这个看似很简单,却问题多多。<br />Flex总是报错“IO错误, #2038”<br />(代码很普通,文档中的实例)<br />服务段代码:<br /> <br />from twisted.web2 import http_headers, resource, / static, server, channel, http, responsecodefrom twisted.python原创 2010-12-16 18:08:00 · 2275 阅读 · 0 评论 -
Twist+pyMongo+MongoDB测试结果
两台测试机,机器的配置就不写了。代码也不贴了。 主要是测试pymongo在twisted下的稳定度,和可能出现的同步问题(或许没有) Inser: mail:/home/jintong# ab -kc 10 -t 30 http://192.168.2.7:8080/tThis is ApacheBench, Version 2.3 Copyrigh原创 2010-01-08 16:35:00 · 2992 阅读 · 0 评论 -
Render_if: Conditional Parts in Nevow Templates
http://eagain.net/blog/2005/12/17/nevow_render_if.html def render_if(self, ctx, data): r=ctx.tag.allPatterns(str(bool(data))) return ctx.tag.clear()[r] <ul nevow:pattern="True"转载 2009-06-22 10:25:00 · 1808 阅读 · 0 评论 -
Twisted adbapi的使用
Twisted adbapi没有太多文档。这段时间我一直在用Twisted + sqlite(3), 效果还是不错的。主要的代码: from twisted.enterprise import adbapi _conn = adbapi.ConnectionPool(sqlite3, ./NewsDB.db) def countCB原创 2009-05-06 14:10:00 · 10399 阅读 · 0 评论 -
Concurrence系列-安装
Concurrence的安装还是比较正常的(比那些编译时报出100个error的东西好多了)。 我试了两个平台,有奔头(8.x,企业版),和Mac(leopard), 有奔头下, 可能需要apt-get install python-devapt-get install libevent-dev easy_install pyrex原创 2009-04-23 14:39:00 · 896 阅读 · 0 评论 -
Concurrence-concurrent网络应用必备
在寻找一个异步框架的时候,找到这个框架,Concurrence(http://opensource.hyves.org/concurrence/index.html) Hello world:from concurrence import dispatchdef hello(): print "Hello World!" if __name__ ==原创 2009-04-23 14:24:00 · 919 阅读 · 0 评论 -
Sphinx的一个应用实例
我把我blog的数据(中英文混合)导出, 作为数据来源, 来说明sphinx的使用.准备数据源导入数据:mysql -u root -p test 配置Sphinx配置data source:source blog{ type = mysql sql_host = localhost sql_us原创 2008-10-13 14:19:00 · 4818 阅读 · 0 评论 -
Sqlalchemy中的多对多映射
废话不多说.我是用metadata和class分开的方式来进行映射的. 这样可以最大限度的灵活.(文档里对这块的描述并不是那么清楚, 零零碎碎的)官方的文档在: http://www.sqlalchemy.org/docs/05/mappers.html#advdatamapping_relation_patterns_manytomany下面我们以blogpost-tag的实例来说明.首先, m原创 2008-08-25 14:48:00 · 3709 阅读 · 2 评论 -
The Zen of Python, by Tim Peters
Python 2.5.1 (r251:54863, Apr 15 2008, 22:57:26) [GCC 4.0.1 (Apple Inc. build 5465)] on darwinType "help", "copyright", "credits" or "license" for more information.>>> import thisThe Zen of Python, by转载 2008-08-27 19:31:00 · 7976 阅读 · 1 评论 -
Web.py下表单的Ajax实时验证
web.py目前并没有对ajax的官方支持. Google Code上只有一个ajaxweb的项目, 可以暂时用一下.利用jquey的库, 可以自己很轻松的实现这一个功能.html: form id="signup" action="/user/add/" method="post"> fieldset> l原创 2008-08-27 17:12:00 · 3861 阅读 · 0 评论 -
Web.py对模板传值的一个技巧
在web.py中, 通常是对模板这样进行传值的:commentlist = ....selecteditem = .........return render.index(commentlist=commentlist, selecteditem= selecteditem.....)这样, 如果一个巨复杂的页面里, 有10, 20个变量要传入, 这个括号里的就长了...其实完全可以这样:retu原创 2008-08-26 16:08:00 · 3657 阅读 · 0 评论 -
无废话Cheetah
Cheetah是python的模板框架. 成熟度和效率都很不错.下面记录一些使用Cheetah进行web开发的常用语句.变量替代我的名字叫 $name$staff.address.roadname#如果混合...他是个${desease}患者.#两个变量在一起也可以.$foo$barif判断#if $keywords $keywords#else There are no keywor原创 2008-08-25 15:58:00 · 721 阅读 · 0 评论 -
Sqlalchemy中Unique Key引起的问题
用MetaData创建表的时候, 报错:sqlalchemy.exc.OperationalError: (OperationalError) (1071, Specified key was too long; max key length is 767 bytes) /nCREATE TABLE user (/n/tid INTEGER NOT NULL AUTO_INCREMENT,原创 2008-08-22 15:26:00 · 4700 阅读 · 0 评论 -
LIGHTTPD+FASTCGI+WEB.PY ON DEBIAN
写于http://www.funcat.cn/blog/archives/166 终于配置好了环境, 可以当作production server了. 下面是笔记: 由于Debian下Python2.5更新会有问题, 所以我沿用原有的2.4. 1. 先下载lighttpd的源码: wget http://www.lighttpd.net/download/lighttpd-1.4.19原创 2008-08-21 13:46:00 · 1241 阅读 · 5 评论 -
Twisted系列-Hello world.
使用一下twisted的getPage功能. 体会python语法特点.代码:# -*- coding: utf-8 -*-from twisted.web.client import getPagefrom twisted.internet import reactordef printContents(contents): print "获得内容:" pr原创 2008-08-20 17:34:00 · 711 阅读 · 0 评论 -
web.py 0.3 - 无废话实例
取最新版的web.py:bzr branch lp:webpy(安装bzr. 目前web.py 0.3还没有发布, 只能从bzr里取出)安装web.py, MySQLdb(数据库驱动), DBUtils(连接池用到), Mako(备用的模板引擎, 可能需要安装setuptools).数据库:CREATE TABLE todo ( id serial primary k原创 2008-08-20 17:41:00 · 6518 阅读 · 1 评论 -
Twisted系列-基础介绍.安装
介绍twisted 是python下一个事件驱动的网络引擎库, 支持很多种的协议.它包含了一个web服务, 多种IM客户端,服务端, 邮件服务协议. 由于规模庞大, twisted分成了几个sub-project. 一起或者分开发布.稳定性twisted并不是从0.1发展到8.1.0的. 是一下子跳到8的. 8.1.0是最新的stable的包. 从successfu原创 2008-08-20 17:30:00 · 961 阅读 · 0 评论 -
sqlalchemy session的一个bug
症状: 一样的代码, 在Windows下不能执行数据库操作(Insert...), 但Linux表现正常.由来:在sqlalchemy中, 有两种方式创建session.方法一:from sqlalchemy.orm import sessionmaker#创建一个Session对象, 如果有engine:Session = sessionmaker(bind=engine)#如果没有engine原创 2008-08-25 15:11:00 · 1558 阅读 · 0 评论 -
web.py .3开发环境搭建
1. 安装python环境. http://www.python.org2. 安装setuptools. 这样我们就可以在后面直接使用easy_install来自动安装库了. http://pypi.python.org/pypi/setuptoolspython setup.py install 就可以了.在Windows下, 记得把easy_install的目录添加到系统的p原创 2008-08-28 13:34:00 · 2615 阅读 · 1 评论 -
Slop One算法-Collaborative Filtering
一般情况下, 实施Collaborative Filtering的过程是:1. 你有一大群的用户.2. 你用一大堆的东西.3. 一些用户很热心的告诉你, 他们对这些东西的看法.4. 你想给他们更多他们可能喜欢的东西.Slope One是一种rating based的预测算法.Slope One 算法是由 Daniel Lemire 教授在 2005 年提出. 是一种简单的C.F.的算法, 但是确解原创 2008-10-11 10:10:00 · 1732 阅读 · 0 评论 -
Mako模板中的self和next
一句话:self执行第一个实现者, 一般是topmostnext沿着继承链向上连锁般的执行看来一句话说不清楚.回头再补.原创 2008-10-10 15:46:00 · 766 阅读 · 0 评论 -
REST web.py
Web.py的优秀之处在于, 它没有过多的包装, 不会像其他web框架一样. 初次使用Web.py, 你可能会因为"闻到泥土的芬芳"而满心欢喜.Web.py让你, 可以直接使用基本的Http methods, 这样, 我们就可以REST了.下面我们描述如何实现一个用户管理的小系统, 当然, RESTly.app.py:import webfrom user import原创 2008-09-22 09:42:00 · 4869 阅读 · 1 评论 -
Collective Intelligence系列教程-简介
每天我们都在豆瓣, 淘宝, 开心上混, 有没有想过, 这些给我们推荐的内容, 有没有根据?这就是使用了Collective Intelligence的算法. C.I.学科因为web2.0网站的发展而达到一个新的高度, web2.0服务也通过C.I.提高了自己的用户体验.可以这样说, C.I.已经成为Web2.0服务的一个标志.对于Collective Intelligence, 目前仅有一本比原创 2008-09-19 15:32:00 · 1185 阅读 · 0 评论