python+spyne+django创建webservice客户端并调用

3 篇文章 0 订阅
1 篇文章 0 订阅

1.什么是webservice?

https://www.jianshu.com/p/5bb727b434e6

2.python如何生成webservice客户端?

spyne官网 http://spyne.io/#inprot=HttpRpc&outprot=JsonDocument&s=rpc&tpt=WsgiApplication&validator=true

使用dajngo+spyne创建客户端:

# view
from django.views.decorators.csrf import csrf_exempt

from spyne import Application, rpc, ServiceBase, Unicode
from spyne.protocol.soap import Soap11, Soap12
from spyne.server.django import DjangoApplication

TNS = "http://adc.siinterface.com/"  # 暂时没有发现有任何实质性作用
# 定义一个class类用于之后渲染至django的url
class SIInterfaceForADC(ServiceBase):
	# rpc 为装饰器用于接收参数 _returns 之前的为接收参数,可以为多个, _returns = 返回参数
    @rpc(Unicode,Unicode, _returns=Unicode)
    # 函数方法,request为接收的参数,如果@rpc中为多个,request也相对应为多个
    def addUserInfo(self, request,request1):
		# 代码逻辑
        return 'addUserInfo'

    @rpc(Unicode, _returns=Unicode)
    def delUser(self, request):

        return 'delUser'
    @rpc(Unicode, _returns=Unicode)
    def modifyUserInfo(self, request):

        return 'modifyUserInfo'
"""
Application = spyne内置函数,用于将上面定义的类分发起来
SIInterfaceForADC = 定义的类
tns = 代码头定义的tns(暂时没发现实质性作用)
name = 给该类命名
in_protocol = 输入的数据 Soap12 = soap协议,可以为Soap11 validator = 数据类型(一般为lxml)
out_protocol = 输出的数据

"""
application = Application([SIInterfaceForADC],tns=TNS,
                          name="SIInterfaceForADC",
                          in_protocol=Soap12(validator='lxml'),
                          out_protocol=Soap12())
# si_service_app = 将spyne渲染至django的url 
si_service_app = csrf_exempt(DjangoApplication(application))
# url
from django.conf.urls import url
from django.contrib import admin
import views

urlpatterns = [
    # si_service_app 为views对应的分发数据
    url(r'^information/', views.si_service_app),
]

启动djgnao之后可以进行查看
url之后需要添加/?wsdl
在这里插入图片描述
使用suds进行webservice接口测试

    from suds.client import Client
    # 传入的数据
    add_xml = 'haha'
    # 链接该webservice地址
    client = Client("http://127.0.0.1:8000/information/?wsdl")
    # addUserInfo = 客户端内定义的函数
    result = client.service.addUserInfo(upd_xml)
    print(result)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
Python是一种高级编程语言,具有简单易学、开发效率高等优点。它被广泛应用于数据分析、人工智能、Web开发等领域。Vue是一种流行的前端开发框架,可以快速构建交互性强的用户界面。Element是Vue的一个UI组件库,提供了丰富的UI组件和交互效果,使开发者可以更便捷地构建漂亮的前端界面。Django是一个基于Python的Web开发框架,提供了许多便捷的功能,如数据库操作、用户认证等,使开发者可以快速构建高性能的Web应用程序。 Python和Vue是完全不同的技术栈,但它们可以在项目中很好地协同工作。例如,使用PythonDjango框架作为后端处理业务逻辑和数据存储,可以通过Django提供的API与Vue前端进行数据交互。Vue的页面可以通过Axios等工具与Django后端进行异步通信,实现前后端分离的开发模式。 在实际开发中,常常需要使用Element组件库来构建界面。Element提供了丰富的UI组件,并且可以与Vue非常好地集成。通过使用Element,开发者可以快速构建漂亮且具有交互性的前端界面。 对于想深入学习这些技术的人来说,研究源码是一个很好的方法。通过阅读源码,可以更好地理解这些框架的内部实现原理,提高自己对技术的理解和运用能力。 总而言之,Python、Vue、Element和Django是四种不同的技术,但它们可以结合使用,实现高效、快速地开发Web应用程序。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值