分类: Python/Ruby
2017-04-07 17:27:38
pip install djangorestframework
django admin startproject restful django admin startapp demo
修改restful/settings.py
在INSTALLED_APPS 添加 'rest_framework'
from django.db import models # Create your models here. class User(models.Model): username = models.CharField(max_length=20,blank=True)
password = models.CharField(max_length=20,blank=True) def __str__(self): return self.username
python manage.py makemigratons python manage.py migrate python manage.py createsuperuser
from django.contrib import admin # Register your models here. from demo.models import User
admin.site.register(User)
此时登陆后台添加一些数据
(图片不清楚可按住Ctrl+鼠标滚轮放大)
# author: HuYong # coding=utf-8 from rest_framework import serializers from demo.models import User class UserSerializer(serializers.ModelSerializer): class Meta: model = User
fields = ("id","username","password")
序列化联通json与模型层
from django.conf.urls import include, url from django.contrib import admin
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^api/demo/',include('demo.urls')),
]
# author: HuYong # coding=utf-8 from django.conf.urls import url from demo import views
urlpatterns = [
url(r'^user/$',views.User_list),
url(r'^user/(?P[0-9]+)/$' ,views.User_detial),
]
import json from django.shortcuts import render # Create your views here. from rest_framework import status from rest_framework.decorators import api_view from rest_framework.response import Response from demo.models import User from demo.serializer import UserSerializer @api_view(['GET','POST']) def User_list(request): if request.method=="GET":
users = User.objects.all()
serializer = UserSerializer(users,many=True) return Response(serializer.data) elif request.method == 'POST': print request.body
serializer = UserSerializer(data=json.loads(request.body)) if serializer.is_valid():
serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) else: return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) @api_view(['GET', 'PUT', 'DELETE']) # def User_detial(request,pk): try:
user = User.objects.get(pk=pk) except User.DoesNotExist: return Response(status=status.HTTP_404_NOT_FOUND) if request.method == "GET":
serializer = UserSerializer(user) return Response(serializer.data) elif request.method == "PUT":
serializer = UserSerializer(user,data=json.loads(request.body)) if serializer.is_valid():
serializer.save() return Response(serializer.data) else: return Response(serializer.errors,status=status.HTTP_400_BAD_REQUEST) elif request.method == "DELETE":
user.delete() return Response(status=status.HTTP_204_NO_CONTENT)