原创-web.py开发
来源:互联网 发布:淘宝新势力周是干嘛的 编辑:程序博客网 时间:2024/04/29 12:30
最近由于项目的需要,开始研究web.py框架的使用。在开发的过程中,遇到一些问题,就把解决的办法记录下来。
项目中有一个登陆接口,即login。而当验证用户名和密码正确之后,需要用session来记录用户的合法性,而web.py.3中没有内置session ,因此下载flup并安装,可以使用flup模块中的session。
在文件上传模块中,在windows环境下当文件大小大过10M时就会抛出Memory error 或timeout异常,自己在查看源代码之后,感觉是在webapi.py的input函数中调用cgi.FieldStorage()的问题。自己动手修改了input函数如下:
def input(*requireds, **defaults):
"""
Returns a `storage` object with the GET and POST arguments.
See `storify` for how `requireds` and `defaults` work.
"""
from cStringIO import StringIO
def dictify(fs): return dict([(k, fs[k]) for k in fs.keys()])
_method = defaults.pop('_method', 'both')
e = ctx.env.copy()
a = b = {}
if _method.lower() in ['both', 'post']:
if e['REQUEST_METHOD'] == 'POST':
if 'CONTENT_TYPE' in e.keys( ):
ctype, pdict = cgi.parse_header(e['CONTENT_TYPE'])
if ctype == 'multipart/form-data':
a = webcgi.parse_multipart(e['wsgi.input'], pdict)
elif ctype == 'application/x-www-form-urlencoded':
a = cgi.FieldStorage(fp=StringIO(data()), environ=e,keep_blank_values=1)
if not 'CONTENT_TYPE' in e.keys( ):
a = cgi.FieldStorage(fp=StringIO(data()), environ=e,keep_blank_values=1)
a = dictify(a)
修改之后,不再抛出异常,但是会出现丢包现象。就到cgi.py里面把parse_multipart()函数中修改代码如下:
while 1:
line = fp.readline()
if not line:
terminator = lastpart # End outer loop
break
if line[:2] == "--":
terminator = line.strip()
if terminator in (nextpart, lastpart):
break
time.sleep(0.00005) #此处为自己添加的。
lines.append(line)
现在上传的问题解决了,但是具体原因还是不太明白,也不知道这样改对不对,但是至少它可以解决目前的问题。
转载请注明出处。
作者:lf8289
地址:
- 原创-web.py开发
- web.py开发实践
- 搭建web.py开发框架
- 开发:web.py(上)
- python web.py 网页开发
- python-web.py 开发入门
- web.py .3开发环境搭建
- SAE python web.py bootstrap 开发记录
- web.py .3开发环境搭建
- web.py新手开发helloword时注意
- python开发框架(tornado, web.py)
- 如何快速搭建web.py开发框架?
- Python环境下使用web.py开发
- JBoss开发Web Service [原创]
- web.py (url.py)
- web.py
- web.py
- web.py
- ajax 动态无刷新更新网页
- c# xml操作类-读取本地和远程xml文件,并返回dataset
- VC简易ADO调用SQL类
- Oracle物理结构故障的处理方法
- 蓝芒科技CEO“许广彬”荣获互联网创新人物奖
- 原创-web.py开发
- Patterns Of Enterprise Application Architecture读书笔记
- 硬件检测助手 v1.0
- (经典)配图版的小姨子勾引我
- windows 各系统文件的作用
- J2EE学习笔记六:本地与远程接口
- 动态链接库的生成
- oracle中参数session和processes的设置
- 数据库 BLOB对象