POP Article V2.0 设为主页
收藏本站
首 页交流论坛留 言
您现在的位置:首 页 >> Python 与 XML >> Python开发 >> 查看文章
使用 python 开发 Web Service
作者:tamsyn  来源:www.sqlite.com.cn  时间:2008-4-1  【 字体: 】 〖 双击滚屏 〗
Python 是一种强大的面向对象脚本语言,用 python 开发应用程序往往十分快捷,非常适用于开发时间要求苛刻的原型产品。使用 python 开发 web service 同样有语言本身的简捷高速的特点,能使您快速地提供新的网络服务,从而适应快速发展的网络商业环境。本文将用实例一步步描述如何用 Python 开发 web service。

搭建开发环境

一个基本的 python web service 开发环境由以下这些工具组成:

Python2.4,Eclipse WTP,PyDev plug-in,Python ZSI包。

安装 python2.4

Python2.4 可以在网站 http://www.python.org/download/realses/2.4,下载安装包,安装过程非常简单,在此不再赘述。

安装 Eclipse WTP

Eclipse WTP 可以在 http://download.eclipse.org/webtools/downloads/ 下载。

安装 pyDev

在 http://pydev.sourceforge.net/download.html 下载 pyDev 插件,解压后将 features 目录和 plugin 目录下的所有文件都拷贝到 Eclipse 的相同目录下就可以了。本文中使用的是 release1.3.9。

安装 python ZSI

从 ZSI 的网站上下载最新的安装包,在写这篇文章的时候,最新的 ZSI 版本为 2.0。解压缩后运行如下命令:


图 1.
图片示例

ZSI 还依赖与一些其它的 python 开源包:SOAPpy,pyXML。本文在后面列出了它们的下载地址。必须安装这些 python 包 ZSI2.0 才能正常运行。

本文提供的 Web service 描述

在本文中我们将利用 python 提供几个 web service,然后用 Java 客户端调用它们。作为演示,我们仅设计了三个简单的 web service:

getTime():返回代表当前时间的字符串。没有输入参数。

sayHello(username):返回一个字符串,内容为“Hello username”,其中 username 为传入参数。

showUser(username):根据输入的 username 返回一个复杂数据类型 userInfo,描述用户的年龄,性别,联系地址。

创建工程

首先创建一个工程。打开 Eclipse,选择 File->New Project。当 pyDev 插件安装好后,会有一个 pyDev project 的选项。选择该选项并创建一个 pyDev 工程。

编写 wsdl 文件

Wsdl 是一个 XML 文件,它主要用来描述所提供的网络服务的细节。用户通过 wsdl 文件就可以了解您所提供的网络服务的调用接口的所有细节。

感谢 Eclipse WTP 提供的 WSDL Editor,它使得编写 WSDL 文件变成了一件轻松的事情。WSDL Editor 提供了可视化的编辑界面。利用 WSDL Editor,用户可以完全从服务本身来思考,无需深入了解 WSDL 的细节。

首先要在工程中增加一个 WSDL 文件,点击菜单 File->New 选择 Other,在弹出的对话框中选择WSDL文件。如下图所示:


图 2.
图片示例

单击 next,给新文件命名为 myServices.wsdl。选择缺省选项并点击 finish 按钮就会生成一个缺省的空 wsdl 文件。此时,将看到如下所示的编辑界面:


图 3.
图片示例

缺省的 WSDL 包含了三个部分 Service,Binding 和 operation。对于一般的应用,只需修改 operation,即上图中最右边的方框。为了提供前面所描述的三个网络服务,我们需要在这个方框中增加三个新的 operation。

第一个网络服务是 getTime。将缺省 wsdl 文件的 operation 方框中的第一个表项修改一下,就可以完成 getTime 的定义了。首先单击标题 NewOperation,将名字高亮选中,如下图所示:


图 4.
图片示例

将其重新命名为 getTime。getTime 服务没有入口参数。但有一个返回值,我们定义返回值为一个表示时间的字符串。注意图二中方框外右边的两个箭头,双击它们就可以分别进入定义入口和出口参数的窗口。首先双击 Input 后面的箭头 (上图中用红色圆圈标出),可以进入如下图所示的参数定义窗口:


图 5.
图片示例

在新打开的 Inline Schema of myServices.wsdl 窗口中,我们可以设置 getTime 的入口参数。getTime 不需要入口参数,因此将缺省的入口参数 in 删除:

浏览次数:   【 打 印 】【 关 闭
上一篇:在Ruby On Rail中使用memory方式的SQLite数据库
下一篇:使用 python 开发 Web Service (2)
 论坛登陆
用户名:
密  码:
验证码: 
Cookie 选项:
正常登陆 隐身登陆
   
没有注册?
 文章搜索
 推荐文章
 酷站推荐
 热门文章
 网站统计
关于我们 | 网站地图 | 联系我们 | 网站历史 | 友情链接 | TOP
Copyright© 2006 Sqlite中文社区  程序开发: mistletoe  站长: 林轩 陈文成