详解使用restframwork api 实现各类http请求-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 1637405
  • 博文数量: 63
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 646
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-26 18:02
个人简介

祸兮福之所倚,福兮祸之所伏

文章分类

全部博文(63)

文章存档

2020年(11)

2019年(10)

2017年(10)

2016年(25)

2015年(7)

我的朋友
相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: web开发

2019-08-05 17:19:30

详解使用restframwork api 实现各类http请求


restframwork api 序列化能相当方便的处理各类http请求和数据处理,本文先介绍http的相关操作。


主要结构还是原来django的mtv,由于提供的是api服务,此处只有mv,而且models主要跟序列化有关,所以本文主要讲view如何接受请求并且返回指定的数据。


urls.py


#rest相关地址定义
from rest_framework import routers
router = routers.defaultrouter()
router.register(r'envinfo', env_infoviewset, base_name='env')

#原来的django路由
urlpatterns = []

urlpatterns = [
),
]


views,基础配置

from rest_framework import viewsets
from rest_framework.response import response
from django.http.response import jsonresponse
from rest_framework.filters import searchfilter
import django_filters

class env_infoviewset(viewsets.modelviewset):
filter_backends = (django_filters.rest_framework.djangofilterbackend, searchfilter)  # 定义后端查询使用的方法
filter_fields = ('id', 'name') # 查询可以过滤的字段
search_fields = ('name',) # 搜索字段,模糊匹配


def get_serializer_class(self):        #  指定序列化,包含数据库的表
return self.get_serializer()

def get_queryset(self):# 定义每页展示条目,用于返回分页信息,并且返回所有表记录,用于查询
page_size = 15
if self.request.get.get('page_size'):
page_size = self.request.get.get('page_size')
self.pagination_class.page_size = page_size
return self.get_model().objects.all()

这样就可以实现单表的增删改查了,可以根据各自业务需求重写


解析下viewsets.modelviewset函数  
继承了  mixins.createmodelmixin,        create方法,创建表记录       --- post    传递参数为request.data
mixins.retrievemodelmixin,      retrieve方法,检索指定表记录     --- get     用于检索指定id的表记录,url最后带id值
mixins.updatemodelmixin,        update方法,更新表记录       --- put     传递参数为request.data 
mixins.destroymodelmixin,       destroy方法,删除表记录      --- delete  传递参数为request.data
mixins.listmodelmixin,          list方法,检索表记录--- get传递参数为request.query_params
genericviewset,                 基础函数


这样通过重新继承这些方法可以限制指定的方法,实现http method的控制。










阅读(280648) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图