首先,我承认我是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()
我想生成一个我可以提供给Web人员的WSDL,我想知道是否可以让SOAPpy为我生成一个。这可能吗?
答案 0 :(得分:11)
去年我尝试编写Python Web服务时,我最终使用ZSI-2.0(类似于SOAPpy的继承人)和paper available on its web。
基本上我手工编写了我的WSDL文件,然后使用ZSI的东西为我的客户端和服务器代码生成存根。我不会将这种体验描述为愉快,但应用程序确实有效。
答案 1 :(得分:1)
我想生成一个我可以给网络人员的WSDL,....
您可以尝试soaplib。它具有按需WSDL生成。
答案 2 :(得分: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)