WEB开发网
开发学院软件开发Python 使用 python 开发 Web Service 阅读

使用 python 开发 Web Service

 2008-09-30 13:03:38 来源:WEB开发网   
核心提示: 调用返回值对象 rsp 的 set_element_xxx() 方法,就可以对返回值对象中的元素进行赋值,使用 python 开发 Web Service(6),这个方法是由 wsdl2py 的 -b 选项生成的,set_element_timeStr(ctime()) 将返回值的 tim

调用返回值对象 rsp 的 set_element_xxx() 方法,就可以对返回值对象中的元素进行赋值。这个方法是由 wsdl2py 的 -b 选项生成的。

set_element_timeStr(ctime()) 将返回值的 timeStr 元素赋值为代表当前时间的字符串。

sayHello() 的代码与此类似。但是与 getTime 不同,sayHello 服务还需要处理客户端调用时传入的入口参数。sayHello 方法的源代码:

  def soap_sayHello(self,ps):
    try:
      rsp = myServices.soap_sayHello(self,ps)
      request = self.request
      usrName = request.get_element_userName()
      rsp.set_element_helloStr("Hello "+usrName)
    except Exception, e:
      print str(e)
    return rsp

request 代表入口参数对象。对于 sayHello 服务,入口参数只有一个元素 userName。调用 request 对象的 get_element_userName() 方法就可以得到该元素的值。

调用返回值对象 rsp 的 set_element_helloStr 将返回字符串赋值给 helloStr 元素。

showUser 服务与前面两个服务的不同在于返回值是一个复杂对象,该复杂对象在 python 中可以用下面这个类来表示:

class userInfo:
  def __init__(self,nm,gen,addr):
    self.name = nm
    self.gender = gen
    self.address = addr

showUser 服务根据客户端传入的用户名在数据库中查找该用户的详细信息并填充 userInfo 对象,相应代码如下:

  def soap_showUser(self,ps):
    try:
      rsp = myServices.soap_showUser(self,ps)
      request = self.request
      uName = request.get_element_userName()
      userDetail = rsp.new_user()
      nm=self.users[uName].name
      userDetail.set_element_name(nm)
      gender=self.users[uName].gender
      userDetail.set_element_gender(gender)
      addr=self.users[uName].address
      userDetail.set_element_address(addr)
      rsp.set_element_user(userDetail)
    except Exception, e:
      print str(e)
    return rsp

上一页  1 2 3 4 5 6 7 8  下一页

Tags:使用 python 开发

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接