如何在 url 上使用带有参数的 Spyne+Django?

Posted

技术标签:

【中文标题】如何在 url 上使用带有参数的 Spyne+Django?【英文标题】:How to use Spyne+Django with parameters on url? 【发布时间】:2021-04-13 11:56:14 【问题描述】:

在 django urls.py 上

url(r'soap/<str:user_id>/',
    DjangoView.as_view(application=provider)), 

关于views.py

@ rpc(_returns=AnyDict)
def super_test_dict(self, one, two):
    user_id = 1 #here need to receive the user_id
    res = "user_id":user_id
    return res

关于tests.py

self.soap_client = DjangoTestClient(
        f'/soap/org.str:user_id/', provider)
res = self.soap_client.service.super_test_dict()

    

问题是当我发送参数 str:user_id 不起作用,但如果没有发送任何正常工作,我需要发送与请求相同的参数但还需要在 url 上发送 str:user_id。

【问题讨论】:

【参考方案1】:

您的 super_test_dict 方法的装饰器未反映您期望的输入参数。

我不确定您到底打算做什么,但要接收输入到您的 Web 服务方法中,请更改您的 views.py 以反映以下内容:

from spyne import Unicode, Integer

@ rpc(Unicode, Integer, _returns=AnyDict)
def super_test_dict(self, username, user_id):
    print(f"Hello: username, your ID is: user_id")
    res = "user_id":user_id
    return res

还记得在您的网络服务应用程序中指定 in_protocolout_protocol '提供者'类

您还可以从这些here 和here 获得更多详细信息

【讨论】:

以上是关于如何在 url 上使用带有参数的 Spyne+Django?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Latin-1 编码 Spyne SOAP XML 响应

为本地开发设置 django 和 dj-database-url

基于Python的Webservice开发-如何用Spyne开发Webservice

Heroku/Django:没有名为 dj_database_url 的模块

在 iOS 9 问题上使用 Alamofire 上传带有 URL 参数的图像

带有登录参数的 URL