看看人家写的VIEWSET,
然后用REQUESTS测试一下。
from rest_framework import viewsetsfrom rest_framework.decorators import detail_routefrom display.models import Alertfrom serializers import UserSerializer, AlertSerializerfrom django.contrib.auth.models import Userfrom rest_framework import permissionsfrom api.permissions import IsOwnerOrReadOnlyclass 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=utf8import urllib import urllib2 import base64import jsonimport requests#GETurl = 'http://127.0.0.1:8000/api/alert/'response = requests.get(url)print "GET output:"print response.text#PUTurl = '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#POSTurl = '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#HEADurl = 'http://127.0.0.1:8000/api/alert/9/'response = requests.head(url)print "HEAD output:"print response.text#OPTIONSurl = 'http://127.0.0.1:8000/api/alert/9/'response = requests.options(url)print "OPTIONS output:"print response.text'''#DELETEurl = 'http://127.0.0.1:8000/api/alert/8/'response = requests.delete(url, auth=('admin','admin'))print "DELETE output:"print response.text'''
来个图爽爽