By minitia, on 十一月 26th, 2009, Category: Python
最近时间比较多,想在以后的项目中应用python。今天做了一下测试。一个小工具的编写。工具的目的根据输入的key,在memcache中查找相应的value。并且对value做一些分析。Value是json格式。
首先下载python-memcached-1.40.tar.gz和python-cjson-1.0.5.tar.gz。然后安装。
安装方法很简单,也很标准。Tar xzf *.tar.gz 然后进入解压后的目录。最后Python setup.py install。这时memcache,json的python都已经可以用了。可在python命令行下测试import memcache, import cjson。如果一切正常说明安装成功。
Continue reading python的memcache和json模块 - 全文阅读
By minitia, on 十一月 26th, 2009, Category: Python
一开始是使用如下的代码: serverinfolist = ServerLog.objects.all()[0:1] paginator = Paginator(serverinfolist, PER_PAGE) # Show 25 contacts per page try: page = int(request.GET.get(’page’, ‘1′)) except ValueError: page = 1 try: contacts = paginator.page(page) #取到具体的每一页的内容及属性 except (EmptyPage, InvalidPage): contacts = paginator.page(paginator.num_pages) return render_to_response(’serverlinux/server_infos.html’, {”listobjects”: contacts,”flag”:True})
Continue reading Django实现大数据量分页查询 - 全文阅读
By minitia, on 十一月 24th, 2009, Category: Python
我们先导入必须用到的一个module >>> import time 设置一个时间的格式,下面会用到 >>>ISOTIMEFORMAT=’%Y-%m-%d %X’ 看一下当前的时间,和其他很多语言相似这是从epoch(1970 年 1 月 1 日 00:00:00)开始到当前的秒数。 >>> time.time() 1180759620.859 上面的看不懂,换个格式来看看 >>> time.localtime() (2007, 6, 2, 12, 47, 7, 5, 153, 0) localtime返回tuple格式的时间,有一个和它类似的函数叫gmtime(),2个函数的差别是时区,gmtime()返回的是0时区的值,localtime返回的是当前时区的值。 >>> time.strftime( ISOTIMEFORMAT, time.localtime() ) ‘2007-06-02 12:54:29′ 用上我们的时间格式定义了,使用strftime对时间做一个转换,如果取现在的时间,time.localtime() 可以不用。
>>> time.strftime( ISOTIMEFORMAT, time.localtime( time.time() ) ) ‘2007-06-02 12:54:31′ >>> time.strftime( ISOTIMEFORMAT, time.gmtime( time.time() ) ) ‘2007-06-02 04:55:02′ 上面展示了gmtime和localtime的区别。 查看时区用 >>> time.timezone -28800 上面的值是一个秒值,是当前时区和0时区相差的描述,-28800=-8*3600,即为东八区。
帖几个简单的函数
def ISOString2Time( s ): ”’ convert a ISO format time to second from:2006-04-12 16:46:40 to:23123123 把一个时间转化为秒 ”’ return time.strptime( s, ISOTIMEFORMAT ) def Time2ISOString( s ): ”’ convert second to a ISO format time from: 23123123 to: 2006-04-12 16:46:40 把给定的秒转化为定义的格式 ”’ return time.strftime( ISOTIMEFORMAT, time.localtime( float( s ) ) ) def dateplustime( d, t ): ”’ d=2006-04-12 16:46:40 t=2小时 return 2006-04-12 18:46:40 计算一个日期相差多少秒的日期,time2sec是另外一个函数,可以处理,3天,13分钟,10小时等字符串,回头再来写这个,需要结合正则表达式。 ”’ return Time2ISOString( time.mktime( ISOString2Time( d ) )+time2sec( t ) ) def dateMinDate( d1, d2 ): ”’ minus to iso format date,return seconds 计算2个时间相差多少秒 ”’ d1=ISOString2Time( d1 ) d2=ISOString2Time( d2 ) return time.mktime( d1 )-time.mktime( d2 )
By minitia, on 十一月 24th, 2009, Category: Python
由于Django发展于快节奏的newsroom环境中,它被设计用来使通常的web开发更加快捷简单。以下是一个非正式的介绍:使用Django来写一个数据库驱动(database-driven)的web app。 本文意在给你足够的技术细节来懂得Django是如何工作的,而不是作为一个tutorial或reference–这些东西我们都有。当你准备开始一个项目时,你可以start with the tutorial或者dive right into more detailed documentation. Design your model虽然可以使用Django without a database, Django有一个对象关系映射器(object-relational mapper),通过它你得以在Python代码中描述你的数据库模型(database layout)这种数据-模型机制(data-model syntax)为表示你的数据模型提供了众多的方式—-so far, 它正用来解决会耗时两年(two years’ worth)的数据库模式(database-schema)问题。
Continue reading Django at a glance–Django初窥 - 全文阅读
By minitia, on 十一月 20th, 2009, Category: Python
Python中如果要使用线程的话,python的lib中提供了两种方式。一种是函数式,一种是用类来包装的线程对象。举两个简单的例子希望起到抛砖引
玉的作用,关于多线程编程的其他知识例如互斥、信号量、临界区等请参考python的文档及相关资料。
1、调用thread模块中的start_new_thread()函数来产生新的线程,请看代码:
### thread_example.py import time import thread def timer(no,interval): #自己写的线程函数 while True: print ‘Thread :(%d) Time:%s’%(no,time.ctime()) time.sleep(interval) def test(): thread.start_new_thread(timer,(1,1)) #使用thread.start_new_thread()来产生2个新的线程 thread.start_new_thread(timer,(2,3)) if __name__==’__main__’: test()
这个是 thread.start_new_thread(function,args[,kwargs]) 函数原型,其中function参数是你将要调用的线程函数;args是讲传递给你的线程函数的参数,他必须是个tuple类型;而kwargs是可选的参数。 线程的结束一般依靠线程函数的自然结束;也可以在线程函数中调用thread.exit(),他抛出SystemExit exception,达到退出线程的目的。
2、通过调用threading模块继承threading.Thread类来包装一个线程对象。请看代码
### threading_example.py import threading import time class timer(threading.Thread): #我的timer类继承自threading.Thread类 def __init__(self,no,interval): threading.Thread.__init__(self) #在我重写__init__方法的时候要记得调用基类的__init__方法 self.no=no self.interval=interval def run(self): #重写run()方法,把自己的线程函数的代码放到这里 while True: print ‘Thread Object (%d), Time:%s’%(self.no,time.ctime()) time.sleep(self.interval) def test(): threadone=timer(1,1) #产生2个线程对象 threadtwo=timer(2,3) threadone.start() #通过调用线程对象的.start()方法来激活线程 threadtwo.start() if __name__==’__main__’: test()
其实thread和threading的模块中还包含了其他的很多关于多线程编程的东西,例如锁、定时器、获得激活线程列表等等,请大家仔细参考python的文档!
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=107470
By minitia, on 十一月 19th, 2009, Category: Programming, Python
Python 的设计在很多方面都类似于 Java 的设计。两者都利用了解释专门的伪编译字节码的虚拟机。JVM 比 Python 更高级的一个方面在于优化了字节码的执行。Psyco,一种 Python 专用编译器,帮助平衡了这一竞争。Psyco 现在是个外部模块,但是在将来的某一天它可能会包括到 Python 本身中去。只需极少量的额外编程,通常就可以使用 Psyco 将 Python 代码的速度提高好几个数量级。在本文中,David Mertz 研究了 Psyco 是什么,并在一些应用程序中对它进行了测试。
Continue reading 用Psyco让Python运行得像C一样快 - 全文阅读
By minitia, on 十一月 17th, 2009, Category: Python
一些regular的tips:
1 非贪婪flag
>>> re.findall(r”a(\d+?)”, “a23b”) ['2'] >>> re.findall(r”a(\d+)”, “a23b”) ['23']
注意比较这种情况:
>>> re.findall(r”a(\d+)b”, “a23b”) ['23'] >>> re.findall(r”a(\d+?)b”, “a23b”) ['23']
Continue reading python非贪婪,多行匹配正则表达式 - 全文阅读
By minitia, on 十一月 12th, 2009, Category: Python
总是找python的IDE,在网上看到这个比较全,就转来了。 Python程序员常用的IDE和其它工具 1. 概述
“工欲善其事,必先利其器”,如果说编程是程序员的手艺,那么IDE就是程序员的吃饭家伙了。
IDE的全称是Integration Development Environment(集成开发环境),一般以代码编辑器为核心,包括一系列周边组件和附属功能。一个优秀的IDE,最重要的就是在普通文本编辑之外,提供针对特定语言的各种快捷编辑功能,让程序员尽可能快捷、舒适、清晰的浏览、输入、修改代码。对于一个现代的IDE来说,语法着色、错误提示、代码折叠、代码完成、代码块定位、重构,与调试器、版本控制系统(VCS)的集成等等都是重要的功能。以插件、扩展系统为代表的可定制框架,是现代IDE的另一个流行趋势。
Continue reading Python程序员常用的IDE和其它工具 - 全文阅读
By minitia, on 十一月 12th, 2009, Category: Python
abs(x) Return the absolute value of a number. The argument may be a plain or long integer or a floating point number. If the argument is a complex number, its magnitude is returned.解析:返回一个数字的绝对值。
>>> abs(1) 1 >>> abs(-1) 1 >>> abs(0) 0 >>> abs(-1.1) 1.1000000000000001 >>> abs(1.1) 1.1000000000000001 >>>
all(iterable)
Continue reading Built-in Functions - 全文阅读
Page 2 of 7 « 1 2 3 4 5 » ... Last »
|
|
|