国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

利用soaplib搭建webservice詳細步驟和實例代碼

2019-11-25 18:37:43
字體:
來源:轉載
供稿:網友

最近在搞基于python的webservice項目,今天為把環境給配好,折騰了不少時間,還是把配的過程記錄下來,以后備用:
首先你系統上要有python,這個不必說啦,我系統上用的是2.7+
其次,要用python進行webservice開發,還需要一些庫:
lxml :
命令行下 sudo easy_install lxml 就能安裝

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'),不知道是怎么回事。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 通化市| 昌都县| 黑山县| 玉环县| 汾阳市| 岳阳市| 仙居县| 新兴县| 荃湾区| 涿鹿县| 大竹县| 丰城市| 慈利县| 阿拉善左旗| 依安县| 广宁县| 阳原县| 赤城县| 阜城县| 法库县| 彭阳县| 新丰县| 华亭县| 宜兰县| 昌都县| 赫章县| 满洲里市| 武安市| 阜阳市| 抚顺市| 崇礼县| 阜平县| 广水市| 瓮安县| 屯留县| 泰和县| 武鸣县| 台东县| 古浪县| 习水县| 正宁县|