python的轻量级rest小框架。

restless的Python项目详细描述


https://travis-ci.org/toastdriven/restless.png?branch=masterhttps://coveralls.io/repos/github/toastdriven/restless/badge.svg?branch=master

python的轻量级rest小框架。

文档位于http://restless.readthedocs.org/

DjangoFlaskPyramidTornado&;Itty一起使用效果很好,但对于 许多其他python web框架。基于从Tastypie中学到的教训 &其他rest库(amp;O)。

功能

  • 小而快速的代码库
  • 默认情况下为json输出,但可重写
  • 宁静
  • python 3.2+(使用垫片使python 2.6+能够正常工作)
  • Django 1.8+
  • <>柔性

反功能

(永远不会添加的内容…)

  • 自动ORM集成
  • 授权(是否按对象)
  • 广泛的过滤选项
  • XML输出(尽管您可以实现自己的输出)
  • 元类
  • Mixins ><
  • Hateoas

为什么?

很简单,我关心的是创建灵活和舒适的API。建筑物内 Tastypie,我试着创造一些非常完整和全面的东西。 结果是编写了许多钩子方法(以便于扩展)&;很多 因为我尽力照顾所有人 需要/以灵活的/可重写的方式。

但实际上,我个人真正想要的是restful动词json 序列化—重写行为的能力。

这本是给我写的,但也许对你有用。

宣言

而不是尝试构建一些自动执行 每个视图中的正确内容,都由您来实现 各种http方法。

示例代码:

# posts/api.pyfromdjango.contrib.auth.modelsimportUserfromrestless.djimportDjangoResourcefromrestless.preparersimportFieldsPreparerfromposts.modelsimportPostclassPostResource(DjangoResource):# Controls what data is included in the serialized output.preparer=FieldsPreparer(fields={'id':'id','title':'title','author':'user.username','body':'content','posted_on':'posted_on',})# GET /deflist(self):returnPost.objects.all()# GET /pk/defdetail(self,pk):returnPost.objects.get(id=pk)# POST /defcreate(self):returnPost.objects.create(title=self.data['title'],user=User.objects.get(username=self.data['author']),content=self.data['body'])# PUT /pk/defupdate(self,pk):try:post=Post.objects.get(id=pk)exceptPost.DoesNotExist:post=Post()post.title=self.data['title']post.user=User.objects.get(username=self.data['author'])post.content=self.data['body']post.save()returnpost# DELETE /pk/defdelete(self,pk):Post.objects.get(id=pk).delete()

连接:

# api/urls.pyfromdjango.conf.urls.defaultimporturl,includefromposts.apiimportPostResourceurlpatterns=[# The usual suspects, then...url(r'^api/posts/',include(PostResource.urls())),]

许可证

bsd

运行测试

测试套件使用tox同时支持两个版本的多个版本 python和django。当前支持的python版本是:

  • cpython 2.7
  • cpython 3.3
  • cpython 3.4
  • cpython 3.5
  • cpython 3.6
  • pypy(python 2.7)

您只需要安装上面的python解释器和tox包 (通过pip可用),然后运行tox命令。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
主类中的java访问方法   Javalog4j不读取它的log4j。属性文件   雅加达ee通过Java(web应用程序)使用iText/任何其他使用现成数据的库生成PDF报告   lua使用java阅读TeamSpeak 3消息   将日期转换为BST java   java Spring引用ProxyFactoryBean中带有ref的protoyype bean   如何使java只打印一条带有if语句的消息   java如何通过JavaMail从雅虎服务器发送电子邮件?   使用百分比和BigDecimal的java测试   java如何对字符串数组排序   java验证器+MVC+REST::更新问题   java如何阻止eclipse如此频繁地挂起?   java从AsyncTask(片段内)访问TextView   IDEJava:制作可调整大小和拖动的组件