使用python创建一个简单的restful风格的webservice应用

本文介绍使用python创建一个简单的restful风格的webservice应用,原文地址http://www.dreamsyssoft.com/blog/blog.php?/archives/6-Create-a-simple-REST-web-service-with-Python.html


这是一个如何使用python快速构建简单restful风格webservice的应用教程。

1.分析rest路由规则

 rest风格的服务通常使用web.py来创建服务器端脚本,一般情况下包含两个url路径:

 一个是为了查询所有用户,一个是为了查询单个用户。

例如下面的url:

http://localhost:8080/users

http://localhost:8080/users/{id}

2.搭建web.py环境

首先你应该安装web.py模块到你的python环境下。如果你之前没有的话请执行下面的脚本。

sudo easy_install web.py

3.提供数据源 

下面是一个提供数据的XML文件

user_data.xml


?
1
2
3
4
5
6
7
8
9
< users >
 
     < user id = "1" name = "Rocky" age = "38" />
 
     < user id = "2" name = "Steve" age = "50" />
 
     < user id = "3" name = "Melinda" age = "38" />
 
</ users >


4.提供服务器端程序

代码清单一:提供一个简单rest服务的python代码

rest.py

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date    : 2014-08-04 14:03:19
# @Author  : pinghailinfeng (pinghailinfeng79@gmail.com)
# @Link    : http://my.oschina.net/dlpinghailinfeng
# @Version : $Id$
 
import web
import xml.etree.ElementTree as ET
 
tree = ET.parse( 'users.xml' )
root = tree.getroot()
 
urls = (
     '/users' , 'list_users' ,
     '/users/(.*)' , 'get_user'
)
app = web.application(urls, globals ())
 
class list_users:
     def GET( self ):
         output = 'users:[' ;
         for child in root:
             print 'child' ,child.tag,child.attrib
             output + = str (child.attrib) + ','
         output + = ']' ;
         return output
class get_user:
     def GET( self ,user):
         for child in root:
             if child.attrib[ 'id' ] = = user:
                     return str (child.attrib)
if __name__ = = '__main__' :
         app.run()

5.运行脚本

接下来运行这个脚本

./rest.py

6.访问url

默认是在8080端口提供可以访问的service服务。这个API服务返回的是json数据,你可以使用下面任意一个URL路径访问,例如:

http://localhost:8080/users

http://localhost:8080/users/1

http://localhost:8080/users/2

http://localhost:8080/users/3

7.结果



至此,一个简单的restful风格的webservice应用建立完毕。

下面继续研究web.py的其他内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值