Django-Restful框架
2016-04-28 22:48
615 查看
1.准备工作
安装django框架安装django-rsetful 框架
pip install djangorestframework
2.一个小demo
2.1创建django工程
django admin startproject restful django admin startapp demo
2.2配置restful环境
修改restful/settings.py 在INSTALLED_APPS 添加 'rest_framework'
2.3编写model层 /demo/model.py
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
2.4配置数据库
python manage.py makemigratons python manage.py migrate python manage.py createsuperuser
2.5配置后台管理 /demo/admin.py
from django.contrib import admin # Register your models here. from demo.models import User admin.site.register(User)
此时登陆后台添加一些数据
(图片不清楚可按住Ctrl+鼠标滚轮放大)
2.6编写序列化模块 /demo/serializer.py
# 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与模型层
2.7编写url
2.7.1根url restful/url.py
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')), ]
2.7.2APP URL demo/urls.py
# 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<pk>[0-9]+)/$',views.User_detial), ]
2.8编写views层 demo/views.py
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)
2.9测试
2.9.1获取用户列表
浏览器访问http://127.0.0.1:8000/api/demo/user/这个浏览器访问的界面
通过postman来测试,返回的是json数据
2.9.2新增数据
通过postman来测试简单设置
返回的数据:
此时获取用户列表栏
2.9.3对单个用户的操作
URL http://127.0.0.1:8000/api/demo/user/4 (id为4的用户)获取用户信息(GET)
修改用户信息(PUT)
删除用户信息(DELETE)
相关文章推荐
- 插件管理框架 for Delphi(一)
- 使用CSS框架布局的缺点和优点小结
- 一起动手编写Android图片加载框架
- 基于.NET平台常用的框架和开源程序整理
- 列举PHP的Yii 2框架的开发优势
- Windows窗体的.Net框架绘图技术实现方法
- 浅谈JavaScript 框架分类
- 轻量级javascript 框架Backbone使用指南
- javascript实现框架高度随内容改变的方法
- JS刷新框架外页面七种实现代码
- 超赞的动手创建JavaScript框架的详细教程
- 深入探讨前端框架react
- 简单介绍不用库(框架)自己写ajax
- 利用ASP.NET MVC+EasyUI+SqlServer搭建企业开发框架
- asp.net4.0框架下验证机制失效的原因及处理办法
- 插件管理框架 for Delphi(二)
- django中使用jquery ajax post数据出现403错误的解决办法(两种方法)
- django使用ajax post数据出现403错误如何解决
- 零基础学习AJAX之AJAX框架
- Ajax 框架学习笔记