好吧,如果一定要RESTFUL的DJANGO

看看人家写的VIEWSET,

然后用REQUESTS测试一下。

from rest_framework import viewsets
from rest_framework.decorators import detail_route
from display.models import Alert
from serializers import UserSerializer, AlertSerializer
from django.contrib.auth.models import User
from rest_framework import permissions
from api.permissions import IsOwnerOrReadOnly

class UserViewSet(viewsets.ReadOnlyModelViewSet):
    """
    This viewset automatically provides `list` and `detail` actions.
    """
    queryset = User.objects.all()
    serializer_class = UserSerializer
    permission_classes = (permissions.IsAuthenticatedOrReadOnly,
                      IsOwnerOrReadOnly,)

class AlertViewSet(viewsets.ModelViewSet):
    """
    This viewset automatically provides `list`, `create`, `retrieve`,
    `update` and `destroy` actions.

    Additionally we also provide an extra `highlight` action.
    """
    queryset = Alert.objects.all()
    serializer_class = AlertSerializer
    permission_classes = (permissions.IsAuthenticatedOrReadOnly,
                          IsOwnerOrReadOnly,)

    def perform_create(self, serializer):
        serializer.save(owner=self.request.user)

 

# coding=utf8
import urllib
import urllib2
import base64
import json
import requests

#GET
url = 'http://127.0.0.1:8000/api/alert/'
response = requests.get(url)
print "GET output:"
print response.text

#PUT

url = 'http://127.0.0.1:8000/api/alert/4/'
data = {'data_source':'TEST18 DB', 'alarm_level':8, 'owner':'admin',
        'alarm_topic':'出错啦', 'alarm_type':'DB'}
response = requests.put(url, data=data, auth=('admin','admin'))
print "PUT output:"
print response.text

#POST
url = 'http://127.0.0.1:8000/api/alert/'
data = {'data_source':'TEST DB', 'alarm_level':8, 'owner':'admin',
        'alarm_topic':'出错啦', 'alarm_type':'DB'}
response = requests.post(url, data=data, auth=('admin','admin'))

print "POST output:"
print response.text

#HEAD
url = 'http://127.0.0.1:8000/api/alert/9/'
response = requests.head(url)
print "HEAD output:"
print response.text

#OPTIONS
url = 'http://127.0.0.1:8000/api/alert/9/'
response = requests.options(url)
print "OPTIONS output:"
print response.text

'''
#DELETE
url = 'http://127.0.0.1:8000/api/alert/8/'
response = requests.delete(url, auth=('admin','admin'))
print "DELETE output:"
print response.text

'''

来个图爽爽

时间: 2024-08-01 05:29:34

好吧,如果一定要RESTFUL的DJANGO的相关文章

Awesome Python

    Awesome Python      A curated list of awesome Python frameworks, libraries, software and resources. Inspired by awesome-php. Awesome Python Environment Management Package Management Package Repositories Distribution Build Tools Interactive Interp

Django Rest Framework 3.3.2 开发 RESTful API

Python Version:     2.7.10Django Version:     1.9REST framework 3.3.2 安装 pip install django pip install djangorestframework settings.py INSTALLED_APPS中引入rest_framework INSTALLED_APPS = [     'django.contrib.admin',     'django.contrib.auth',     'dja

初识django, 一起进入python的世界吧

[size=medium]这几天花了点时间看了一下python世界中的django,正如某大所说,掌握另外一门语言是有必要的,同样我也作出了自己的选择.从这几天的学习中,我确实也发现其他语言及其框架等确实有一种与众不同的感觉.下面我把自己这几天看到的东西稍微作了一下总结,本文并不是django的教程,而是ahuaxuan对django的一些自己的理解,可能有些不成熟的地方,希望大家不要吝惜手中的砖头. 一 django的orm 如果有人问我最喜欢django什么,我会耗不犹豫的告诉你是djang

如何以正确的方式开始Django(v1.7.6)项目

问题描述 来源:http://quxl.snbway.net/目录:virtualenvvirtualenvwrapperdjango-admin.py创建项目增加requirements.txt增加README.md增加.gitignore文件同步数据库一.virtualenv什么是virtualenv?virtualenv用于在一台机器上创建多个独立的python运行环境,类似于一个个沙盒环境.作用:在一个机器上创建出相互隔离,互不影响的Python环境.例如:A项目依赖django v1.

使用 Eclipse 在 Google App Engine 上创建 mashup,第 3 部分: 使用 RESTful Web 服务

使用社会网络可以更轻松地获取并聚合数据,从而创建富有革新精神的新 Web 应用程序.但是,仍然必须处理创建可伸缩 Web 应用程序的所有常见问题.现在,使用 Google App Engine (GAE) 也可以简化工作.使用 GAE,可以不必考虑管理应用服务器池的所有事务,而是集中精力创建优秀的 mashup.本文是共分三部分的系列文章 "使用 Eclipse 在 Google App Engine 上创建 mashup" 的最后一部分,在本文中,将利用并进一步增强在前两部分中构建的

python 为 mysql 实现 restful 接口的详细步骤代码

最近在做游戏服务分层的时候,一直想把mysql的访问独立成一个单独的服务DBGate,原因如下:     请求收拢到DBGate,可以使DBGate变为无状态的,方便横向扩展     当请求量或者存储量变大时,mysql需要做分库分表,DBGate可以内部直接处理,外界无感知     通过restful限制对数据请求的形式,仅支持简单的get/post/patch/put 进行增删改查,并不支持复杂查询.这个也是和游戏业务的特性有关,如果网站等需要复杂查询的业务,对此并不适合     DBGat

在Python的框架中为MySQL实现restful接口的教程_python

最近在做游戏服务分层的时候,一直想把mysql的访问独立成一个单独的服务DBGate,原因如下:     请求收拢到DBGate,可以使DBGate变为无状态的,方便横向扩展     当请求量或者存储量变大时,mysql需要做分库分表,DBGate可以内部直接处理,外界无感知     通过restful限制对数据请求的形式,仅支持简单的get/post/patch/put 进行增删改查,并不支持复杂查询.这个也是和游戏业务的特性有关,如果网站等需要复杂查询的业务,对此并不适合     DBGat

深入RESTful无状态原则

前言 在上篇RESTful基础知识中整体的介绍了RESTful架构设计思想的框架,在往后的RESTful主题博文中,我们在这个框架的基础上不断的为其填充更加深入的知识材料.  RESTful基础知识,传送门:http://blog.csdn.net/jmilk/article/details/50452595 无状态原则 Statelessness:无状态原则是RESTful架构设计中一个非常重要的原则,无状态是相对于有状态而言的.在理解什么是无状态的交互请求之前,首先我们需要了解什么是有状态,

关于DJANGO和JAVASCRIPT的时间

最近,实际一些简单统计时,要到库里去检索数据出来用HIGHCHARTS画图, 作一个简单的回照..   DJANGO用TEMPLATEVIEW来作.专业,正规:) class SAView(TemplateView): template_name = 'version/sa_site.html' paginate_by = 10 def get_context_data(self, **kwargs): context = super(SAView, self).get_context_data