django drf 初探serializer】的更多相关文章

1.定义Model对应的serializer from rest_framework import serializers class GoodsSerializer(serializers.Serializer): """ Goods的serializer """ name = serializers.CharField(required=True,max_length=100) chick_num =serializers.IntegerFi…
django restframework(DRF) 最近的开发过程当中,发现restframework的功能很强大,所以尝试解读了一下源码,写篇博客分享给大家,有错误的地方还请各位多多指出 视图部分 视图部分,主要负责查询方法,在编写代码的过程当中,按照具体功能和请求动作进行了拆分,方便开发者进行自定义的拼接. mixin Mixin 即 Mix-in,常被译为"混入",是一种编程模式, 像C或C++这类语言都支持多重继承,一个子类可以有多个父类,这样的设计常被人诟病.因为继承应该是个…
我有一个Android客户端应用程序尝试使用Django + DRF后端进行身份验证.但是,当我尝试登录时,我收到以下响应: 403: CSRF Failed: CSRF token missing or incorrect. 该请求将发送给http://localhost/rest-auth/google/以下机构: access_token: <the OAuth token from Google> 什么可能导致这个?客户端没有CSRF令牌,因为要进行身份验证的POST是客户端和服务器之…
django框架初探 1.web框架介绍 web框架本质是一个socket服务端.每一个端口只能被一个程序监听. web程序分为两个部分: 服务器程序:对socket服务器封装,解析http请求,发送http响应. 应用程序:负责具体的业务逻辑. WSGI:(Web Service Gateway Interface)WSGI接口定义非常简单,它只要求Web开发者实现一个函数,就可以响应HTTP请求. 我们先编写hello.py,实现Web应用程序的WSGI处理函数: #hello.py def…
Django DRF 分页 分页在DRF当中可以一共有三种,可以通过setttings设置,也可也通过自定义设置 PageNumberPagination 使用URL http://127.0.0.1/CarApi/?page=2&page_size=2 这种分页是按照页码和每页条数进行分页的,需要指定页码和每页条数 常用参数 方法 描述 page_size 每页数据条数,默认位空,如果settings当中设置了,价值settings当中的配置 django_paginator_class 采用…
一.APIView 我们在使用DjangoRestfulFramework的时候会将每个视图类继承APIView,取代原生Django的View类 APIView的流程分析: rest_framework>>views.py>>APIView 进入APIView APIView>>as_view 走as_view方法(此方法会在Django启动时,在路由文件内执行,最终返回一个view函数内存地址) 接下来我们回顾一下Django原生的as_view内的view方法内容…
view demo class ValidateCodeSet(mixins.CreateModelMixin, viewsets.GenericViewSet): serializer_class = VerifyCodeSerializer def create(self, request, *args, **kwargs): serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_excep…
什么是搜索? 譬如http://127.0.0.1:8000/User/?username=maotai-0 可以检索出想要的. 自己实现原始的搜索 重写下get_queryset方法 class UserViewset(viewsets.ReadOnlyModelViewSet): ''' List: 查询用户列表 Retrieve: 查询某用户详情 ''' queryset = user.objects.all() serializer_class = UserSerialiser def…
联合唯一可以使用django中的unique_together,和DRF中的UniqueTogetherValidator->https://www.django-rest-framework.org/api-guide/validators/#uniquetogethervalidator unique_together model class UserFav(models.Model): """ 用户收藏 """ user = mode…
1.定义View from django.shortcuts import render from rest_framework.views import APIView from rest_framework.response import Response from rest_framework import status from rest_framework.parsers import JSONParser from rest_framework import mixins, gene…
drf提供了更快捷的查询方法ListModelMixin+GenericAPIView,和ListAPIView 1.ListModelMixin+GenericAPIView from django.shortcuts import render from rest_framework.views import APIView from rest_framework.response import Response from rest_framework import status from…
登录注册是几乎所有网站都需要去做的接口,而说到登录,自然也就涉及到验证以及用户登录状态保存,最近用DRF在做的一个关于网上商城的项目中,引入了一个拓展DRF JWT,专门用于做验证和用户状态保存.这个拓展比传统的CSRF更加安全.先来介绍一下JWT认证机制吧! Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景.JWT的声明一般被用来在身…
一.序列化类的增.删.改.查 用drf的序列化组件   -定义一个类继承class BookSerializer(serializers.Serializer):   -写字段,如果不指定source,字段名必须跟数据库字段名对应(source指定的值跟字段名不能重复)   -source还可以指定方法   -publish=serializers.SerializerMethodField()   def get_publish(self,obj):    obj.publish    #ob…
一.cbv源码分析 二.resful规范 三.django中写resful的借口 四.drf写resful的借口 五.APIVIew源码分析 六.drf之序列化 一.cbv源码分析 -CBV和FBV 1.在views中写一个类,继承views里面写get方法,post方法 2.在路由中配置:url(r'^test/',views.Test.as_view()),实际上上第二个参数位置,放的还是一个函数内存地址 3.当请求来了,就会执行第二个参数(request,参数),本质上执行views()…
复习 """ 1.vue如果控制html 在html中设置挂载点.导入vue.js环境.创建Vue对象与挂载点绑定 2.vue是渐进式js框架 3.vue指令 {{ }} v-text|html => 限制一次性渲染 v-once v-if|show v-if v-else-if v-else v-for v-model v-bind [c1, c2] | {active: isActive} v-on fn | fn(...) | fn($event, ...) {{…
一 简述 这里来谈下一些基本原理 二 汇总 1 restful规范 1 根据method不同做不同的操作          request.method='          get(获取) 返回完整对象          post(创建) 返回新的对象          put(更新) 返回完整对象          delete(删除) 返回空 2 基于cbv实现  3 url构成  http:wwww.com/api/版本号/对象/筛选条件/状态码 4 drf的request是对djang…
DRF基本程序调用一 models初步编写  1 编写model.py    from django.db import models 导入    class dbinfo(models.Model):   column= models.CharField(max_length=128)   class Meta:   db_table = dbname    verbose_name = '关系对照表' 2 初始化数据库  python3 manage.py makemigrations ap…
在 Django REST framework官方文档提到,当调用Serializer时,应当传入request参数,以便生成完整的url而不是相对url.使用ModelSerializer时request会被自动传入.当在ModelSerializer中嵌套其他Serializer时,需要手动传入request.示例如下: class ExampleSerializer(ModelSerializer): child = ChildSerializer(context={'request':…
一 环境配置    python3.5+ django2.0 pymysql二 安装   /usr/bin/python3 -m pip install django   /usr/bin/python3 -m pip install djangorestframework  /usr/bin/python3 -m pip install pymysql三 配置  1 启动    修改 django-admin.py python为python3            django-admin.…
django使用haystack来调用Elasticsearch搜索引擎  如何使用django来调用Elasticsearch实现全文的搜索 Haystack为Django提供了模块化的搜索.它的特点是统一的,熟悉的API,可以让你在不修改代码的情况下使用不同的搜索后端(比如 Solr, Elasticsearch, Whoosh, Xapian 等等). 环境:django ==1.11.11 1.首先安装相关的依赖包:(这里原作者使用的是drf-haystack,如果项目没有使用drf组件…
建议使用djangorestframework-jwt或者djangorestframework_simplejwt,文档为 https://github.com/GetBlimp/django-rest-framework-jwt https://github.com/davesque/django-rest-framework-simplejwt 这里以djangorestframework-jwt举例 1.安装 pip install djangorestframework-jwt 2.配…
1.View Demo from django.shortcuts import render from rest_framework.views import APIView from rest_framework.response import Response from rest_framework import status from rest_framework.parsers import JSONParser from rest_framework import mixins, g…
View Demo from django.shortcuts import render from rest_framework.views import APIView from rest_framework.response import Response from rest_framework import status from rest_framework.parsers import JSONParser from rest_framework import mixins, gen…
1.定义get_queryset()方法 from django.shortcuts import render from rest_framework.views import APIView from rest_framework.response import Response from rest_framework import status from rest_framework.parsers import JSONParser from rest_framework import…
1.定义VIew from django.shortcuts import render from rest_framework.views import APIView from rest_framework.response import Response from rest_framework import status from rest_framework.parsers import JSONParser from rest_framework import mixins, gene…
serializer用起来稍微麻烦,可以使用ModelSerializer,类似于django里的Form与ModelForm 1.定义ModelSerializer from rest_framework import serializers from goods.models import Goods, GoodsCategory # class GoodsSerializer(serializers.Serializer): # """ # Goods的serializ…
Django Restful Framework (DRF)中类的调用与自定义-- 以 autentication 认证为例 DRF 的 request 对 django 的 request 进行了更一步的封装; 通过获取认证相关的所有类,并实例化,传入request对象(user,auth) 自定义实例 from django.shortcuts import render from rest_framework.views import APIView from rest_framework…
1.RESTful 1.1 定义 REST(Representational State Transfer)与技术无关,代表一种软件架构风格,中文为表征状态转移. 1.2 RESTful API设计 API与用户的通信协议,总是使用HTTPS协议 域名 https://api.example.com 尽量将API部署在专用域名(会存在跨域问题) https://example.org/api/ API在路径上,简单 版本 URL 如:https://api.example.com/v1/ 代表v…
在serlizers中添加 # -*- coding: utf-8 -*- from rest_framework import serializers from .models import * class UserSer(serializers.Serializer): name=serializers.CharField(max_length=64) age=serializers.CharField(allow_blank=True) home=serializers.CharField…
一 简介: 用户登录的验证 二 验证机制:    1 session session需要在服务端存储能够通过session_id而获取的信息,每次请求到达服务端时,需要根据session_id这个key值,获取存储在内存/磁盘/数据库中的信息   2 token token 信息均在token里面,服务端只需要根据token中定义的算法进行解析,即可获得所需认证信息.所以一个是memory cost,一个是time cost     eg: eyJ0eXAiOiJKV1QiLCJhbGciOiJ…