14

首先,我承认我是 Web 服务的新手,虽然我熟悉 HTML 和基本的 Web 内容。我使用 Python 创建了一个快速而简单的 Web 服务,它调用 MySQL 数据库中的存储过程,它只返回一个 BIGINT 值。我想在 Web 服务中返回这个值,并且我想生成一个可以提供给我们的 Web 开发人员的 WSDL。我可能会补充一点,存储过程只返回一个值。

这是一些示例代码:

#!/usr/bin/python

import SOAPpy
import MySQLdb

def getNEXTVAL():
    cursor = db.cursor()
    cursor.execute( "CALL my_stored_procedure()" )  # Returns a number
    result=cursor.fetchall()

    for record in result:
        return record[0]

db=MySQLdb.connect(host="localhost", user="myuser", passwd="********", db="testing")
server = SOAPpy.SOAPServer(("10.1.22.29", 8080))
server.registerFunction(getNEXTVAL)
server.serve_forever()

我想生成一个可以提供给网络人员的 WSDL,我想知道是否可以让 SOAPpy 为我生成一个。这可能吗?

4

3 回答 3

12

当我去年尝试编写 Python Web 服务时,我最终使用了ZSI-2.0(类似于 SOAPpy 的继承者)和其 web 上提供的一篇论文

基本上,我手动编写了我的 WSDL 文件,然后使用 ZSI 东西为我的客户端和服务器代码生成存根。我不会将这种体验描述为令人愉快的,但该应用程序确实有效。

于 2008-11-10T03:25:11.960 回答
1

我想生成一个可以提供给网络人员的 WSDL,...

你可以试试soaplib。它具有按需生成 WSDL。

于 2008-11-08T04:34:26.520 回答
1

抱歉几天前的问题。现在我可以成功调用服务器了。提供了一个演示:

def test_soappy():
    """test for SOAPpy.SOAPServer
    """
    #okay
    # it's good for SOAPpy.SOAPServer.
    # in a method,it can have morn than 2 ws server.
    server = SOAPProxy("http://localhost:8081/")
    print server.sum(1,2)
    print server.div(10,2)
于 2011-12-01T02:59:53.657 回答