Django REST风格接口实现匿名访问
2012-07-05 23:21
399 查看
Django REST风格接口实现匿名访问
Piston通过handler将资源与models进行映射。Resource必须是一个类,通常情况下,Resource要实现下列四个方法中的一个或多个:
实现代码如下:
其结构图为:
urls.py
settings.py
myapp/
__init__.py
views.py
models.py
api/
__init__.py
urls.py
handlers.py
重要部分源码模板为:
handers.py
url.py:
参考文档:http://django-piston-03dev.readthedocs.org/en/latest/documentation.html#documentation
Piston通过handler将资源与models进行映射。Resource必须是一个类,通常情况下,Resource要实现下列四个方法中的一个或多个:
read: | 由 GET动作调用,获取对象而不做数据修改(该方法是幂等的) |
create: | 由POST动作调用,创建新对象(们)并返回该对象(们)(或是返回rc.CREATED.) |
update: | 由PUT动作调用,更新某个已存在的对象并返回该对象(或是返回rc.ALL_OK.) |
delete: | 由DELETE动作调用,删除某个已存的对象,只返回rc.DELETED。 |
其结构图为:
urls.py
settings.py
myapp/
__init__.py
views.py
models.py
api/
__init__.py
urls.py
handlers.py
重要部分源码模板为:
handers.py
#!/usr/bin/python # -*- coding: utf-8 -*- #filename : handers.py from django.core.context_processors import request from django.db.models.query_utils import Q from piston.handler import AnonymousBaseHandler, BaseHandler from piston.utils import rc, require_mime, require_extended class AnonymousMyPistonHandler(AnonymousBaseHandler): """某某接口""" #只允许为GET请求 allowed_methods = ('GET','POST','PUT','DELETE') @classmethod def resource_uri(cls, ddt_login): return ('ddt_login', ['json', ]) #处理GET请求 def read(self,request): #处理POST请求 @throttle(5, 10*60) #表示10分钟调用5次 def create(self,request): pass #处理PUT请求 def update(self,request): pass #处理DELETE请求 def delete(self,request): pass #接口 支持匿名的方法处理 class MyPistonHandler(BaseHandler): anonymous = AnonymousMyPistonHandler
url.py:
#!/usr/bin/python # -*- coding: utf-8 -*- #filename : urls.py from django.conf.urls.defaults import * from piston.resource import Resource from piston.authentication import HttpBasicAuthentication from blogserver.api.handlers import MyPistonHandler auth = HttpBasicAuthentication(realm='My sample API') piston_api = Resource(handler=MyPistonHandler, authentication=auth) urlpatterns = patterns('', url(r'^api/$', piston_api), )
参考文档:http://django-piston-03dev.readthedocs.org/en/latest/documentation.html#documentation
相关文章推荐
- piston-在django中实现REST风格的API
- SpringMVC4.0实现rest风格接口,json格式请求和返回
- ssm框架整合及Rest风格接口实现
- Springboot 框架实现rest接口风格
- RESTful和REST-RPC接口风格的差异与实现
- django-rest-framework文件上传接口实现
- jws 方式表格导出,excel文件导出,rest风格接口实现
- 使用 yii 实现 REST 风格接口
- piston-在django中实现REST风格的API
- 【Java面试题】13 Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
- 用springmvc实现类似restful风格接口(接收和返回为xml格式数据)
- Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
- springmvc Rest风格介绍及实现代码示例
- springcloud入门系列(2)-Feign、Ribbon实现Rest接口请求和负载均衡
- 匿名内部类是否可以继承其他类或实现接口
- 分别使用委托、接口、匿名方法、泛型委托实现加减乘除运算
- django实现用户登陆访问限制@login_required
- SpringMVC构建REST接口:第五篇 myBatis数据层实现
- SpringMVC构建REST接口:第六篇 服务层实现
- Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?