Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Django for Dojo'实现restful服务器;s JsonRestStore-该作业使用哪些工具?_Python_Django_Rest_Dojo - Fatal编程技术网

Python 使用Django for Dojo'实现restful服务器;s JsonRestStore-该作业使用哪些工具?

Python 使用Django for Dojo'实现restful服务器;s JsonRestStore-该作业使用哪些工具?,python,django,rest,dojo,Python,Django,Rest,Dojo,我正在编写一些restful服务器端资源,这些资源在客户端与dojo的JsonRestStore(JRS)通信: 我注意到,我可以利用几个项目来帮助创建restful资源(即在Django模型上公开简单的CRUD操作): 及 我相信我可以从头开始为Dojo的JR编写restful服务器端接口,但我不想重新发明任何轮子,因此,我的问题是: 以上项目之间有什么区别 你会帮助我实现既定目标吗 有没有其他项目我可能想看看这个任务 请注意,关于JRS发出请求和期望响应的方式,有一些具体的细节,我需要

我正在编写一些restful服务器端资源,这些资源在客户端与dojo的JsonRestStore(JRS)通信:

我注意到,我可以利用几个项目来帮助创建restful资源(即在Django模型上公开简单的CRUD操作):

我相信我可以从头开始为Dojo的JR编写restful服务器端接口,但我不想重新发明任何轮子,因此,我的问题是:


以上项目之间有什么区别

你会帮助我实现既定目标吗

有没有其他项目我可能想看看这个任务

请注意,关于JRS发出请求和期望响应的方式,有一些具体的细节,我需要实现这些细节。这里有几个(不完整的)例子,让你知道我在说什么。创建:响应状态为201和新创建资源的
位置:/path/id
标题。集合:解析
范围:items=x-y
标题,并使用它对响应进行分页。使用
内容范围:items x-z
标题进行响应。将JSON中的模型序列化为集合的字典列表,或单个项的简单字典


以上项目之间有什么区别

请自己做,根据您的需求匹配项目,而不是相互匹配

你会帮助我实现既定目标吗

有没有其他项目我可能想看看这个任务


活塞。

我会看看活塞、tastypie和django rest框架,老实说,它们大部分都很相似,我只是浏览一下文档,看看你认为哪一个适合

我不认为这些都会支持你提到的范围分页,这可能是你需要自己处理的事情


活塞是老爹,虽然没有被积极维护,这不一定和问题,因为它几乎做什么你想要的反正。Tastypie的优势在于它背后有一个很棒的社区,并且有很好的文档记录。django rest框架具有管理风格的API浏览器、文档中的大量示例以及不断增长的社区。django rest接口在AFAIK中非常不错,但我不知道它背后有任何社区的努力。

django grids有一长串rest项目:,但它并没有真正列出功能。不过,您想要什么功能?这是一个rest接口,它应该能够根据使用的HTTP方法执行正确的操作,并根据发送的
Accept
头返回正确的序列化。据我所知,他们都这样做

我一直在使用Piston和Tastypie的pbs教育工具,试图让它们按照我想要的方式工作。我将使用django rest框架。以下是我遇到的一些事情:

  • 活塞总的来说在处理事情上做得很好,但它有几个奇怪的错误,它吞下了我试图抛出的东西的状态代码。(我的黑客攻击是)没有人维护它,主要问题跟踪程序中也有。其中有些可能有补丁,有些可能是WontFix,但对于一个规模不大的项目来说,139个开放bug是很多的,更重要的是,在过去的2.5年中已经有两次提交

    但它确实有效,并且足以让很多人继续使用它。而且它非常灵活,而且它足够小(只有几个文件),我能够在经历了“几个小时”的挫折之后,很快地为我的用例修补好足够好的补丁

  • Tastypie为你做了很多工作。而且有着令人惊讶的良好记录。它以我希望的方式做了几件事但是,如果你看一下这些文档,它的相关——特别是嵌套——资源的URI模式是向后的,它需要黑客(hacks,但仍然)才能让它们正常工作

    这一定是因为Tastypie为您做了多少工作:不像活塞(和django rest框架?它的文档似乎建议它也可以为您做这项工作,但我没有实际使用它)您不需要编写CRUD函数url方案。这,你知道,很好,除了我的计划不是完全平坦的,所以我需要破解调度方法,而且我不知道它内置的HATEOAS机器是否能与我疯狂的破解相匹配。它仍然会返回有效的URI,但它们是否是我希望人们使用的URI?(可能有一些函数可以做到这一点,有很多地方可以连接到Tastypie,但我在资源方法的任何地方都找不到“规范的url”)


所以:活塞非常灵活,但有点死气沉沉,如果你有一个非常简单的图形,Tastypie不是灵活的,但很棒,我还没有接触django rest框架。这些似乎是目前最重要的项目。

“上述项目之间有什么区别?”请自己去做。你可以阅读这些网站,你知道你的需求。你也可以在热的时候查看这个,谢谢你对这些项目的总结。我会看看你建议的那些。默认情况下,Tastypie肯定会分页。(,查看代码后面的“Note”)但据我所知,使用嵌套资源(例如,用户有很多集合)是一件痛苦的事情。但是它也有很多内置的HATEOAS,这很好。它可以分页是的,尽管不是上面描述的HTTP“Range”头分页。