`
runfeel
  • 浏览: 936229 次
文章分类
社区版块
存档分类
最新评论

Django REST风格接口实现匿名访问

 
阅读更多

Django REST风格接口实现匿名访问

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

分享到:
评论

相关推荐

    django rest framework vue 实现用户登录详解

    在Django REST framework中实现用户登录,需要在Django的视图(views.py)中编写API接口,通常使用TokenAuthentication或SessionAuthentication这两种认证方式。 #### TokenAuthentication 使用TokenAuthentication...

    Vue+Django REST framework 打造生鲜电商项目.docx

    本项目的目标是使用 Vue 作为前端框架,Django REST framework 作为后端框架,设计并实现一个完整的生鲜电商项目。该项目将涵盖电商平台的主要功能,包括用户注册、登录、商品浏览、购物车管理、订单管理等。 2. ...

    Django REST framework讲义PDF全集,中文文档PDF版

    通过阅读这本Django REST framework讲义,你将深入理解DRF的各个方面,掌握如何设计、实现和维护高质量的Web API。这份文档包含丰富的实例,有助于理论与实践相结合,帮助你快速成为DRF的专家。

    django rest framework开发生鲜电商

    它使得开发者能够快速地开发出符合REST(Representational State Transfer)架构风格的Web服务,即RESTful API。RESTful API的设计理念是通过HTTP方法(如GET、POST、PUT、DELETE等)操作资源,实现客户端与服务器...

    Django-REST-framework教程中文版

    Django-REST-framework教程中文版是一份关于如何使用Django-REST-framework来快速创建REST风格API的中文教程。Django-REST-framework是一个建立在Django框架之上的强大的REST API工具包,它允许开发者利用Django的...

    Django REST进阶学习资料

    Django REST Framework(简称DRF)是基于Python的Django Web框架的一个强大的扩展,它为构建Web API提供了高效、易用的工具集。本进阶学习资料将带你深入理解Django REST的高级特性,帮助你从初级用户晋升为熟练...

    重写 Django REST framework drf-api-logger 应用

    在Django REST Framework(DRF)中,`drf-api-logger`是一个非常有用的库,它可以帮助开发者记录API请求的日志,以便于监控、调试和分析应用的行为。然而,原始的`drf-api-logger`可能并不完全满足所有需求,比如在...

    Python-DjangoREST框架的无密码验证

    在Django REST框架中实现这一功能,通常会涉及到以下步骤: 1. **注册与身份验证令牌**:当用户注册或请求登录时,服务器不再要求提供密码,而是发送一个唯一的一次性令牌到用户的邮箱或手机。这个令牌通常有一个...

    Django REST framework 中文文档.pdf

    Django REST framework通过提供序列化器(Serializer)类来实现这一功能,并且允许开发者自定义序列化的规则,包括数据的验证和清洗。 请求和响应部分介绍的是如何处理HTTP请求和响应。在DRF中,这通常通过扩展REST...

    重写Django REST framework源码demo

    在本文中,我们将深入探讨如何重写Django REST framework(DRF)的源码来实现自定义功能。Django REST framework是一个强大的、灵活的用于构建Web API的工具包,它为Django项目提供了高效的序列化、认证、权限管理...

    django-rest-framework 官方文档

    在DRF中,可以轻松实现API版本控制,允许在不影响现有接口的情况下添加新功能。 13. **性能优化** DRF提供了性能优化技巧,如延迟序列化、缓存策略等,以提高API的响应速度。 14. **第三方扩展** Django REST ...

    Django restframework课件笔记详解

    总之,Django REST framework是一个强大的工具,它简化了API开发流程,让开发者能够专注于业务逻辑,而无需过多关注底层实现细节。通过深入学习和实践,你可以利用DRF构建出功能强大、易于使用的Web API。

    接口自动化测试平台源码+项目说明(后端Django REST framework编写,前端vue+elementUI).zip

    1、该资源内项目代码经过严格调试,下载即用确保可以运行! 2、该资源适合计算机相关专业...接口自动化测试平台源码+项目说明(后端采用Django REST framework编写接口,前端页面采用比较容易上手的vue+elementUI).zip

    django rest framework

    REST(Representational State Transfer)是一种软件架构风格,常用于构建Web服务。其核心思想是通过HTTP方法(GET、POST、PUT、DELETE等)来操作资源。Django REST Framework使开发者能够轻松地将Django模型转换为...

    django整合mysql实现对外提供接口

    标题"django整合mysql实现对外提供接口"指出我们将讨论如何在Django框架下集成MySQL数据库,并创建一个能够对外提供服务的API接口。Django是Python的一个流行Web开发框架,而MySQL则是一种广泛应用的关系型数据库...

    django3.0+rest framework + Vue 生鲜超市项目-后端

    在本项目中,我们探索的是一个基于Django 3.0、Django Rest Framework和Vue.js构建的生鲜超市电子商务平台的后端实现。这个项目旨在提供一个完整的开发环境,供学习者深入理解如何将这些技术整合在一起,创建一个...

    【33】[全栈开发 ]Vue+Django REST framework 打造生鲜电商项目视频教程 .txt

    【33】[全栈开发 ]Vue+Django REST framework 打造生鲜电商项目视频教程 .txt t

    Django rest framework中文

    在Django REST framework中,序列化通常通过继承`serializers.ModelSerializer`或`serializers.HyperlinkedModelSerializer`类来实现。`HyperlinkedModelSerializer`支持通过URLs建立模型之间的关联,这是一种遵循...

    django rest frame work中文电子参考文档

    Django REST Framework(简称DRF)是一个强大的、灵活的、用于构建Web API的高级框架,它基于Python语言和Django Web框架。这个“Django REST framework中文电子参考文档”是针对DRF的详细教程,旨在帮助开发者更好...

Global site tag (gtag.js) - Google Analytics