如何在 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_protocol 和 out_protocol '提供者'类
您还可以从这些here 和here 获得更多详细信息
【讨论】:
以上是关于如何在 url 上使用带有参数的 Spyne+Django?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Latin-1 编码 Spyne SOAP XML 响应
为本地开发设置 django 和 dj-database-url
基于Python的Webservice开发-如何用Spyne开发Webservice
Heroku/Django:没有名为 dj_database_url 的模块