-
Twisted系列web编程之六 :SESSION 的处理
前面讲到了利用twisted来动态生成网页,动态dispatch url, 处理get 请求,处理post请求的数据,但还有一个重要的东西。在做网页开发时必不可少,就是 session 管理。怎么得到session, 怎么测底销毁一个session,怎么在session 中存入数据,怎么设置 session 的过期时间。这是要解决的问题。
Date: 2012-11-08 View: 4211
-
Twisted系列web编程之六 :处理POST数据
前面讲到用get 请求得到网页内容,但如何用post 方式提交数据呢,POST REQUEST 不像GET 请求那样,它包含了一个内容,还有头文件信息等。比如我们有一个HTML form 填写,在填写完毕后,提交数据. 我们得到相关的数据处理后,然后在返回结果到浏览器端.
Date: 2012-11-07 View: 3143
-
Twisted系列web编程之五 :异常错误页面处理 404
前面讲到动态页面的生成,以及动态页面 url 分发的处理,但还没涉及到异常错误的处理,本文就主要讲异常处理。在网页浏览时,如果找不到相应的资源,或者程序内部出错,会出现一个404错误或者500错误。这里将会引入 twisted.web 的 NoResource.from twisted.web.resource import NoResource当客户打开一个并没有定义的资源请求时,NoResource 会生成一个简单的404 错误的页面显示给客户,还是用上一讲的例子,根据年份生成日历的例子,如果输入的年份不是整数,那么应该报错才对。
Date: 2012-11-06 View: 2565
-
Twisted系列web编程之四 :动态网页地址分发
上面一篇讲到 静态地址的分发,那个相对比较简单,在程序中直接指定要要渲染的资源文件就可以了。但动态分发,从字面意思上看就知道在 url 上有动态变化的参数,根据参数取不同的资源。当然这也离不开动态生成内容,类似于第二讲, 下面的讲解了一个根据传入的年号而现实日历的一个例子。
Date: 2012-11-06 View: 2753
-
Twisted系列web编程之三 :静态地址分发(url dispatch)
在前面一章,实现了如何利用 twisted.web 生成动态网页。但那是一个固定的地址,也就是固定的uri,但在实际生活中,大家上同一个网站,但会请求不同的URI,比如,你可以请求http://www.yihaomen.com/ 还可以请求http://www.yihaomen.com/tag.asp 等等。不同的uri 应该有各自对应的响应。下面看用 twisted 是如何来实现的.
Date: 2012-11-05 View: 2978
-
python 获取系统临时目录,临时文件的操作方法
在开发应用程序的过程中,会有一些临时的信息,或者不太重要的信息,会保存在一个特殊的目录下面,在windows 里面,通常会在 c:\docume~1\admini~1\locals~1\temp 这个地方,而在 centos 中就是 /tmp 目录比如我们经常上网,网页的的一些临时信息都保存在这个临时目录里面。那么在我们自己写应用程序的时候,怎么得到这个临时目录,怎么创建临时文件呢。在python里面有tempfile这个模块可以调用.1. 生成临时文件2.删除临时文件
Date: 2012-11-05 View: 11266
-
Twisted系列web编程之二 :生成一个动态的网页
本文将讲述如何利用twisted.web来生成一个动态网页,当客户端通过浏览器访问时,可以看到动态生成的网页内容,首先还是需要import 相应的包,from twisted.internet import reactorfrom twisted.web.server import Sitefrom twisted.web.resource import Resource假设我们做一个简单生成动态时间的网页,那么我们还需要引入import time,现在来创建时钟这个resource
Date: 2012-11-04 View: 3022
-
Twisted系列web编程之一 :从一个目录提供静态内容服务
twisted 是 python 里的一个网络编程的框架,包罗万象,无所不能,但其结构复杂,也让不少人望而生畏。本系列将讲解twisted 作为web server 的一些编程,以 windows 为基础测试,但其实linux也是可以的。本文讲述为一个目录提供静态内容服务,首先我们要import 一些东西1. from twisted.web.server import SiteSite,一个工厂实现了监听http端口2. from twisted.web.static import File
Date: 2012-11-04 View: 2865
-
python装饰器的各种使用方法
python 的装饰器,可以用来实现,类似spring AOP 类似的功能。一样可以用来记录某个方法执行前做什么,执行后做什么,或者用来记录日志,运行的时间等,更有甚者,用这个来做权限拦截,也未尝不可。从两个方面来描述python 的装饰模式:1. 对普通方法的装饰2. 对在 class 类中的方法的装饰,不需要给参数的情况3. 对在 class 类中的方法的装饰,需要给参数的情况
Date: 2012-11-01 View: 2933
-
python 实现 ftp 服务(附源码)
python 具备强大的网络编程功能,而且代码简介,用简单的代码,就能实现一个功能强大的FTP 服务器。我亲自测试了这个 python ftp server. 代码下载,在文章的末尾处,整个部署介绍如下:1. 环境, python 2.7.3 ,centos 6.2 .2. 定义服务器ip ,端口等信息,可以在下载的源码中查看 listen_ip = "192.168.4.128" # ftp server 的 ip 地址 listen_port = 2111 # ftp 端口,默认21,这里我设置成2111.
Date: 2012-10-31 View: 4629
-
centos下 python pil "decoder jpeg not available"问题
本来在windows下开发的一个图片上传的小东西,但需要部署到 centos 环境中,部署上去之后,上传图片之后,发现了一个错误提示 "decoder jpeg not available" . 一看这问题就是 pil 还没有安装 jpeg 图片处理的东西.
Date: 2012-10-29 View: 4697
-
比较python类的两个instance(对象) 是否相等
对于同一个Class,可以创建不同的实例(instance), 如何比较这两个 instance 是否相等呢?我们知道,对于计算机来说,要判断两个对象是否相等,就是看在内存中的地址是否同一个。如果内存地址一样,那么肯定是相等的。这种情况通常出现在一个对象是另外一个对象的引用时出现。但在实际的开发过程中,要比较两个对象是否相等,并不是通过内存地址来判断的,而是通过这两个对象的部分属性值,或者全部属性值来对比判断的。
Date: 2012-10-25 View: 12949
-
得到Django Model或Model实例的属性值
有什么好方法得到django model或model instance 的属性值呢?也就是要取得这个类中所有的属性值。第一种可以选择的方法,是利用 __dict__.keys()第二种方法,利用 _meta.fields ,对类和具体的类实例都是可以用的。
Date: 2012-10-23 View: 5738
-
Django model,QuerySet 序列化成json的方法
提到序列化与反序列化,通常会想到 json ,xml .在J2EE的开发中,这是很常用的技术,比如一个java class与xml之间的序列化与反序列化,我们可以通过 xstream来实现,如果是与json之间的转换,我们可以通过 gson.jar或者jsonlib.jar 来实现。方法很多,也是常见的方法。但在python 中,我们常用的是json 的序列化,python2.7 已经包含了json package,这个也是从simplejson 基础上改变而来。这个json 包主要提供了dump,load 来实现dict 与 字符串之间的序列化与反序列化,这很方便的可以完成,可以参考这篇文章python json。但现在的问题是,这个json包不能序列化 django 的models 里面的对象的实例。经过分析,网络搜索,发现有如下解决方案.
Date: 2012-10-23 View: 45213
-
Django orM与自定义SQL语句混合事务控制
用单纯的ORM 或者单纯的自定义SQL语句,都比较好控制事务。在前面的一篇博客中已经讲过Django事务小结 ,但里面没有提到在同一个方法里面既有ORM 又有 自定义SQL 语句的情况。如果是单纯的ORM ,可以这样做,假设已经定义好model, User,Category。
Date: 2012-10-22 View: 3733