使用Python和SOAPpy生成WSDL

15 投票
3 回答
27128 浏览
提问于 2025-04-11 18:03

首先,我得承认我对网络服务还很陌生,虽然我对HTML和一些基本的网页知识有点了解。我用Python快速搭建了一个简单的网络服务,这个服务会调用MySQL数据库中的一个存储过程,返回一个BIGINT类型的值。我想把这个值返回给用户,并且希望能生成一个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能不能帮我自动生成一个。这样做可以吗?

3 个回答

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)
1

我想生成一个WSDL文件,方便给网络开发人员使用,……

你可以试试soaplib。它可以根据需要生成WSDL文件。

12

去年我尝试写一个Python的网络服务,最后用了一个叫做 ZSI-2.0 的工具(它有点像SOAPpy的继承者)和一篇网站上的论文

基本上,我是手动写了一个WSDL文件,然后用ZSI的工具生成了客户端和服务器代码的模板。虽然这个过程并不算愉快,但最终应用还是能正常运行。

撰写回答