用python创建一个简单的restful风格的web服务应用

来源:互联网 发布:linux mutex 编辑:程序博客网 时间:2024/05/18 01:49

使用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 rest json

目录[-]

  • 1.分析rest路由规则
  • 2.搭建web.py环境
  • 3.提供数据源 
  • 4.提供服务器端程序
  • 5.运行脚本
  • 6.访问url
  • 7.结果

  • 这是一个如何使用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>
     
        <userid="1"name="Rocky"age="38"/>
     
        <userid="2"name="Steve"age="50"/>
     
        <userid="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$
     
    importweb
    importxml.etree.ElementTree as ET
     
    tree=ET.parse('users.xml')
    root=tree.getroot()
     
    urls=(
        '/users','list_users',
        '/users/(.*)','get_user'
    )
    app=web.application(urls,globals())
     
    classlist_users:
        defGET(self):
            output='users:[';
            forchild inroot:
                print'child',child.tag,child.attrib
                output+=str(child.attrib)+','
            output+=']';
            returnoutput
    classget_user:
        defGET(self,user):
            forchild inroot:
                ifchild.attrib['id']==user:
                        returnstr(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的其他内容

    0 0
    原创粉丝点击