搭建web.py开发环境,web.py是一个开源框架,运行基于python(派森),所以首先下载python安装并配置环境变量,加入path即可。
接着下载web.py,进入文件目录,运行“python setup.py install”安装。
安装参考:
http://www.cnblogs.com/dolphin0520/archive/2013/10/15/3343617.html
运行todo.py,进入文件所在目录,运行“python todo.py”命令运行。成功显示下面界面
否则出错。
错误1:AttributeError: 'module' object has no attribute 'inet_pton'
解决方式:
解决方法,修改Python安装目录下Lib\site-packages\web\net.py文件的第32到第35行为如下内容:
try:
socket.inet_pton(socket.AF_INET6, address)
except:
return False
try:
socket.inet_pton(socket.AF_INET6, address)
except:
return False
链接:
http://www.2cto.com/kf/201306/218804.html
多半是缩进的问题,改一下即可。
成功后,在浏览器上输入http://192.168.2.39:8080/即可。
todo.py程序中,首先定义url映射
urls = (
'/', 'Index',
'/login', 'Login',
'/logout', 'Logout',
'/del/(\d+)', 'Delete',
'/service/login/(.*)/(.*)', 'ServiceLogin',
'/service/todo/', 'ServiceTodoGet',
'/service/todo/add/(.*)', 'ServiceTodoAdd',
'/service/todo/del/(\d+)', 'ServiceTodoDelete',
)
其中客户端登录界面的映射ServiceLogin中如下代码:
if (username,password) in allowed:
session.logged_in = True
web.header('Content-Type', 'application/json')
result = {'result':'ok'}
return json.dumps(result)
else:
web.header('Content-Type', 'application/json')
result = {'result':'error'}
return json.dumps(result)
in allowed其实是是否在数组中或者map中,搜索allwed可以发现:
allowed = (
('user','pass'),
)
也就是说,只有这一个帐号可以登录
另外,todo.py中的输出log可以在控制台查看,如果想输出变量值,可以使用:
print 'Hello, logging!'
print username
print password