pytz :
命令行下 sudo easy_install pytz 就能安裝
soaplib:
進行webservice開發必須要用的庫,可以在https://github.com/volador/soaplib拿到,注意要先安裝上面兩個插件再安裝這個,因為這個依賴于上面兩個插件,把zip拿下來后解壓,sudo python setup.py install 就能安裝了。
代碼如下:
Soaplib is an easy to use python library for publishing soap web services using WSDL 1.1 standard, and answering SOAP 1.1 requests. With a very small amount of code, soaplib allows you to write a useful web service and deploy it as a WSGI application.
soaplib是python的soap框架,可以用來建立webservice.soaplib這樣在這里下載:https://github.com/volador/soaplib
裝好soaplib后新建一個test.py,建立一個webservice,實現返回兩個整數相加的和。代碼如下:
代碼如下:
# -*- coding: cp936 -*-
import soaplib
from soaplib.core.util.wsgi_wrapper import run_twisted #發布服務
from soaplib.core.server import wsgi
from soaplib.core.service import DefinitionBase #所有服務類必須繼承該類
from soaplib.core.service import soap #聲明注解
from soaplib.core.model.clazz import Array #聲明要使用的類型
from soaplib.core.model.clazz import ClassModel #若服務返回類,該返回類必須是該類的子類
from soaplib.core.model.primitive import Integer,String
class C_ProbeCdrModel(ClassModel):
__namespace__ = "C_ProbeCdrModel"
Name=String
Id=Integer
class AdditionService(DefinitionBase): #this is a web service
@soap(Integer,Integer,_returns=String)
def addition(self,a,b):
return str(a)+'+'+str(b)+'='+str(a+b)
@soap(_returns=Array(String))
def GetCdrArray(self):
L_Result=["1","2","3"]
return L_Result
@soap(_returns=C_ProbeCdrModel)
def GetCdr(self): #返回的是一個類,該類必須是ClassModel的子類,該類已經在上面定義
L_Model=C_ProbeCdrModel()
L_Model.Name=L_Model.Name
L_Model.Id=L_Model.Id
return L_Model
if __name__=='__main__': #發布服務
try:
print '服務已經開啟'
from wsgiref.simple_server import make_server
soap_application = soaplib.core.Application([AdditionService], 'tns')
wsgi_application = wsgi.Application(soap_application)
server = make_server('localhost', 7789, wsgi_application)
server.serve_forever()
except ImportError:
print 'error'
在瀏覽器中訪問http://127.0.0.1:7789/SOAP/?wsdl出現一大版的xml而不是訪問錯誤,就說明服務添加成功啦
在命令行下既可以測試
代碼如下:
>>>from suds.client import Client
>>> test=Client('http://localhost:7789/SOAP/?wsdl')
>>> print test.service.addition(1,2)
1+2=3
問題注意:代碼運行過程中,會出現各種模塊沒找到,那是因為你沒有安裝,根據提示,google搜索下載安裝就好,如果是windows,找不到exe,zip格式的安裝文件,下載tar.gz也行的,解壓后在cmd切換到解壓目錄,執行:python setup.py install便安裝成功了。
第一次建立連接很慢很慢,慢到無法忍受,>>> test=Client('http://localhost:7789/SOAP/?wsdl'),不知道是怎么回事。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com