python实现soaplib搭建webservice详细步骤和实例代码

发布于 2014-10-25 12:54:21 | 389 次阅读 | 评论: 0 | 来源: 网友投递

Python编程语言Python 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。

本文是一个python下使用 soaplib搭建webservice详细步骤和实例代码,大家可以参考使用

最近在搞基于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'),不知道是怎么回事。

相关阅读:

python实现soaplib搭建webservice详细步骤和实例代码

Python中的闭包详细介绍和实例代码

Python实现的bt种子爬虫程序和种子解析

python实现的二叉树算法和kmp算法实例

python实现的利用打码兔和超人打码封装的打码类

Python实现网站文件的全备份和差异备份

Python实现的简单文件传输服务器和客户端示例

Python实现计算文件夹下.h和.cpp文件的总行数

Python实现SMTP发送邮件详细教程

Python 实现购物商城,含有用户入口和商家入口的示例

Python实现的百度站长URL自动提交代码

python实现下载FTP上的文件夹的代码

python 代码封装为webservice_python实现soaplib搭建webservice详细步骤和实例代码相关推荐

  1. [转载] python中pass的使用_Python pass详细介绍及实例代码

    参考链接: Python pass语句 Python pass详细介绍及实例代码 Python pass的用法: 空语句 do nothing 保证格式完整 保证语义完整 以if语句为例,在c或c++ ...

  2. zookeeper单机和集群搭建过程详细步骤

    文章目录: ▶ 单机环境搭建 ▶ 设置zookeeper为开机服务 ▶ 集群环境搭建 单机环境搭建 要求: 依赖Java环境 单机搭建过程: 进入到/opt目录下,创建zookeeper 文件夹 cd ...

  3. 大疆 DJI mobile SDK系列详细教程——运行实例代码(跑通大疆官方提供Mobile SDK里的sample code)

    大疆 DJI mobile SDK系列详细教程--运行实例代码(跑通大疆官方提供Mobile SDK里的sample code) 文章目录 一.官方文献与资源地址 二.操作步骤 提示:昨天在尝试跑通大 ...

  4. mysql数据库主从复制步骤_MySQL搭建主从复制详细步骤

    MySQL搭建主从复制详细步骤 发布时间:2020-05-26 11:23:27 来源:51CTO 阅读:122 作者:三月 下面讲讲关于MySQL搭建主从复制详细步骤,文字的奥妙在于贴近主题相关.所 ...

  5. iis搭建网站教程(iis搭建网站详细步骤)

    iis搭建网站教程(iis搭建网站详细步骤) 本教程基于Windows10系统,其他版本基本上步骤相差不大 1.打开我的电脑,在地址栏输入"控制面板"四个字然后回车,打开控制面板界 ...

  6. python批量解压文件_python 批量解压压缩文件的实例代码

    下面给大家介绍python 批量解压压缩文件的实例代码,代码如下所述: #/usr/bin/python#coding=utf-8import os,sys import zipfile open_p ...

  7. python文件查重并合并_Python实现文件信息进行合并实例代码

    将电话簿TeleAddressBook.txt和电子邮件EmailAddressBook.txt合并为一个完整的AddressBook.txt def main(): ftele1=open(&quo ...

  8. python selenium爬虫代码示例_python3通过selenium爬虫获取到dj商品的实例代码

    先给大家介绍下python3 selenium使用 其实这个就相当于模拟人的点击事件来连续的访问浏览器.如果你玩过王者荣耀的话在2016年一月份的版本里面就有一个bug. 安卓手机下载一个按键精灵就可 ...

  9. python七段数码管绘制实验报告_Python绘制七段数码管实例代码

    七段数码管(seven-segmentindicator)由7段数码管拼接而成,每段有亮或不亮两种情况,改进型的七段数码管还包括一个小数点位置 绘制模式: input:输入当前日期的数字形式 proc ...

  10. python中求合数_python输出100以内的质数与合数实例代码

    具体代码如下所述: __author__ = 'Yue Qingxuan' # -*- coding: utf-8 -*- #求质数 p=[2] for i in range(2,101): for ...

最新文章

  1. Android ANR详解
  2. Float构建三栏DIV CSS网页布局
  3. linux fedro版本查看命令,Fedora查看内核及发行版本号
  4. Codeforces Round #183 (Div. 2)
  5. Codeforces Round #617 (Div. 3) E2. String Coloring (hard version) 思维 + dp + Dilworth定理
  6. sql安装联机丛书提示发生网络错误_速达软件:安装问题解答
  7. 4~20mA模拟输出(电流环)应用笔记(转)
  8. bzoj1670【Usaco2006 Oct】Building the Moat 护城河的挖掘
  9. 10桌面管理文件收纳_二十余件精选桌面好物推荐,让学习工作生活满满正能量!...
  10. (ssh整合web导出excel)在ssh框架中使用poi正确导出具有比较高级固定格式的excel 整体过程,查询导出前后台下载...
  11. 团队项目:VS2013和SQL Server2012的连接使用
  12. 如何在 FineUIMvc 中引用第三方 JavaScript 库
  13. 求三点外接圆圆心公式
  14. html加拼音注释,满江红岳飞全文带拼音(注释+译文)
  15. 中大型企业的固定资产管理办法
  16. Kubernetes:(十四)安全机制(一定要做好安全措施哦)
  17. win10修改保存的git用户名和密码
  18. 赛码网笔试Java代码示例
  19. 论文解读:《PACES:mRNA中N4乙酰胞苷(ac4C)修饰位点的预测》
  20. 智能文档控制——文档的智能归档、捕获、索引、访问和协作

热门文章

  1. 光纤OTDR测试是端到端损耗原理
  2. 全球免费开放的电子图书馆
  3. MAC 电脑安装jdk
  4. Python基于OpenCV的人脸集合相似度检测系统(源码&UI&教程)
  5. springboot微信小程序 获取微信unionid
  6. 2022最新版影视小程序源码支持josn官解+卡密系统
  7. DOS窗口命令大全用法及其详解
  8. 解决Navicat激活、注册时候出现No All Pattern Found的问题
  9. DSP程序中 ,如何完成延时且不影响整体程序的工作效率
  10. MIDI文件基础及使用Python库mido操作MIDI文件