前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >rest_framework基础

rest_framework基础

作者头像
人生不如戏
发布2018-05-30 14:52:22
4790
发布2018-05-30 14:52:22
举报
文章被收录于专栏:抠抠空间

简介

为什么要使用REST framework?

Django REST framework 是一个强大且灵活的工具包,用以构建Web APIs。  

在线可视的API,对于赢得你的开发者们十分有用  验证策略涵盖了OAuth1aOAuth2 - 同时支持ORM非ORM数据源的序列化 - 可以配置各个环节,若无需更多强大特性,使用一般基于类(function-based)的视图(views)即可  大量的文档,强力的社区支持 - 大公司如同MozillaEventbrite,也是忠实的使用者

配置要求

REST framework 有以下的要求:

  • Python (2.7, 3.2, 3.3, 3.4, 3.5)
  • Django (1.7+, 1.8, 1.9)

下面是可选的包:

  • Markdown (2.1.0+) - Markdown为可视化 API 提供了支持.
  • django-filter (0.9.2+) - 过滤支持.
  • django-crispy-forms - 为过滤,提供了改良的HTML呈现.
  • django-guardian (1.1.1+) - 对象层面的权限支持.

安装与配置

安装

代码语言:javascript
复制
pip install djangorestframework
pip install markdown     # 可选依赖包
pip install django-filter  # 可选依赖包

配置

代码语言:javascript
复制
INSTALLED_APPS = (
    ...
    'rest_framework',
)


REST_FRAMEWORK = {
    # 编码格式  
    'UNICODE_JSON': False,
}

基本使用方法

models.py

代码语言:javascript
复制
from django.db import models

class Author(models.Model):
    name=models.CharField(max_length=32)
    age=models.IntegerField()
    def __str__(self):
        return self.name

urls.py

代码语言:javascript
复制
from django.conf.urls import url
from django.contrib import admin
from rest_demoimport views
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^authors/$', views.AuthorsView.as_view()),
    url(r'^authors/(\d+)/$', views.AuthorsDetailView.as_view()),
]

serializer.py

代码语言:javascript
复制
from rest_framework import serializers
from rest_demo import models

class AuthorModelSerializers(serializers.ModelSerializer):
    class Meta:
        model = models.Author
        fields = '__all__'

views.py

代码语言:javascript
复制
from rest_demo import serializer
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_demo import models

class AuthorsView(APIView):
    def get(self,request):
        '''
        查询所有作者
        :param request: 
        :return: 
        '''
        author_list = models.Author.objects.all()
        auts = serializer.AuthorModelSerializers(author_list,many=True)
        return Response(auts.data)


    def post(self,request):
        '''
        添加作者
        :param request: 
        :return: 
        '''
        auts = serializer.AuthorModelSerializers(data=request.data)
        if auts.is_valid():
            auts.save()
            return Response(auts.data)
        return Response(auts.errors)


class AuthorsDetailView(APIView):
    def get(self,request,id):
        '''
        查询单条作者
        :param request: 
        :param id: 
        :return: 
        '''
        author = models.Author.objects.filter(pk=id).first()
        auts = serializer.AuthorModelSerializers(author)
        return Response(auts.data)


    def put(self,request,id):
        '''
        修改单条作者
        :param request: 
        :param id: 
        :return: 
        '''
        author = models.Author.objects.filter(pk=id).first()
        auts = serializer.AuthorModelSerializers(instance=author,data=request.data)
        if auts.is_valid():
            auts.save()
            return Response(auts.data)
        return Response(auts.errors)


    def delete(self,request,id):
        '''
        删除单条作者
        :param request: 
        :param id: 
        :return: 
        '''
        models.Author.objects.filter(pk=id).delete()
        return Response()

封装后使用方法

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-05-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 为什么要使用REST framework?
  • 配置要求
  • 安装与配置
    • 安装
      • 配置
      • 基本使用方法
        • models.py
          • urls.py
            • serializer.py
              • views.py
              • 封装后使用方法
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档