首页 > TAG信息列表 > APIView
drf基本视图类APIView
rest_framework.views.APIView APIView是REST framework提供的所有视图类的基类,继承自Django的view父类 APTview与view的不同之处在于: 传入到视图方法中的是REST framework的Request对象,而不是Django的 HttpRequeset对象 视图方法可以返回REST framework的ResponseAPIView使用
1 CBV源码分析 # 基于类的视图---》讲过了 -必须要继承它:from django.views import View # drf的东西,都是写cbv,必须要继承View#######流程分析# path('books/', views.BookViwe.as_view())# views.BookViwe.as_view()的执行结果,是函数内存地址----》view这个函数的内存CBV源码的一个分析 APIView的基本使用 APIView执行流程分析 序列化类Serializer的使用
昨日回顾 # 1 web 前后端开发模式 -混合开发:既要写前端,又要写后端----》全栈工程师 -前后端分离:前端一个项目,后端一个项目,分别不同的组来做,api接口,数据通信 -模板语法:渲染在后端完成 -前端用php写的,后端用python写的? -php后端语言,跟python同一级,一类东西,在html页面CBV源码分析 APIView的基本使用 APIView执行流程分析 Request对象源码分析 序列化类Serializer的使用 序列化类常用字段和字段参数
drf_day02 查看源码快捷键:command+鼠标左键 点击想要查看的源码 CBV源码分析 # 基于类的视图---》讲过了 -必须要继承它:from django.views import View # drf的东西,都是写cbv,必须要继承View #######流程分析 # path('books/', views.BookView.as_view()) # views.BoAPIView、Request
CBV源码分析 -必须要继承它:from django.views import View # drf的东西,都是写cbv,必须要继承View #######流程分析 # path('books/', views.BookViwe.as_view()) # views.BookViwe.as_view()的执行结果,是函数内存地址----》view这个函数的内存地址 # 请求来了---》路由匹配成jwt-控制用户登录后才能访问,和不登录就能访问
# 1 控制用户登录后才能访问,和不登录就能访问 from rest_framework.permissions import IsAuthenticated class OrderAPIView(APIView):# 登录才能 authentication_classes = [JSONWebTokenAuthentication,] # 权限控制 permission_classes = [IsAuthenticated,]权限
APIView---->dispatch---->initial--->self.check_permissions(request)(APIView的对象方法) def check_permissions(self, request): # 遍历权限对象列表得到一个个权限对象(权限器),进行权限认证 for permission in self.get_permissions(): #删除一个数据
class BookView(APIView): def delete(self,request,pk): ret=Book.objects.filter(pk=pk).delete() return Response({'status':100,'msg':'删除成功'}) # urls.py re_path('books/(?P<pk>\d+)', views.Book基于APIView写接口
#### views.py from rest_framework.generics import GenericAPIView from app01.models import Book from app01.ser import BookSerializer # 基于APIView写的 class BookView(APIView): def get(self,request): book_list=Book.objects.all() book_ser=Bo12_02、初识drf
一、drf介绍和快速使用 1、drf介绍 1.1 drf的替代品 需要注意,原生Django框架,即使不导入drf相关模块,也可以写出符合restful的相关规范 举个例子: # 地址:127.0.0.1:8080/books # 路由:path('/books',views.books) # 视图函数中:通过orm查出所有图书(qs)--->序列化(for循环自己拼成列表rest-framework之APIView
rest-framework之APIView 一 安装djangorestframework 方式一:pip3 install djangorestframework 方式二:pycharm图形化界面安装 方式三:pycharm命令行下安装(装在当前工程所用的解释器下) 二 djangorestframework的APIView分析 @classmethod def as_view(cls, **initkwargs):Restful规范-APIView源码分析
目录一、Restful规范十条规范二、drf的简单使用三、APIView源码分析CBV源码分析APIView源码分析 一、Restful规范 Restful规范是一种web API接口的设计风格,在前后端分离的应用模式中适用较多。 这种风格的理念认为后端开发任务就是提供数据的,对外提供的是数据资源的访问接口,所以在将模型对象转换为json字典:model_to_dict
例子 from rest_framework.views import APIView class StudentAPIView(APIView): def get(self, request): pk = request.query_params.get(pk) student_obj = Student.objects.get(pk) return Response(model_to_dict(student_obj)) # model_to_dict中的参数 moApiView方式传递数据
ApiView方式传递数据 安装drf python 终端输入 pip install djangorestframework -i https://mirrors.aliyun.com/pypi/simple/ 在 settings.py 文件中导入 AIPView方法导包 from rest_framework.views import APIView from rest_framework.response import Response 用APdjango rest framework系列02-引入rest使用APIView实现用户登录且保存Token
1、数据库简单设计: from django.db import models class UserInfo(models.Model): user_type_choices =( (1,'普通用户'), (2,'VIP用户'), (3,'SVIP用户'), ) user_type = models.CharField(max_length=2,choices=user_t类视图(APIView)
from rest_framework.views import APIView from meituan.models import Merchant from django.http import Http404 from .serializers import MerchantSerializer from rest_framework.response import Response from rest_framework import status ######################05 DRF请求生命周期
DRF请求生命周期 根据应用中urls.py,走as_view方法,但是视图类没有该方法,所以请求走的是APIView的as_view方法 在APIView的as_view调用父类(django原生View)的as_view,同时还禁用了 csrf 认证 在父类(django原生View)的as_view中dispatch方法请求走的又是APIView的dispatch 因为APIVi1911A:Apiview+Serializers使用
1.APIview使用 https://www.cnblogs.com/xiaonq/p/10124104.html https://www.cnblogs.com/xiaonq/p/10987889.html ModelViewSet 是对 APIView 封装 ModelSerializer 是对 Serializer 1.1 在 user/urls.py 中添加路由 urlpatterns=[ path('apiview/',Apiview+serallizers
1.APIVIEW使用 https://www.cnblogs.com/xiaonq/p/10124104.html ModelVIewSet是对APIView封装 ModelSerializer是对Serializer 1.1在user/urls.py中添加路由 urlpatterns = [ path('apiview/', views.UserInfoViewSet.as_view()), ] 1.2 创建user/serializers.py写序列化器Django之Apiview和Serializer使用
Django之Apiview使用 1.Apiview使用 ModelViewSet 是对ApiView封装 ModelSerializer 是对Serializer封装 1.1在user/urls.py中添加路由 urlpatterns=[ path('apiview',views.UserInfoViewSet.as_view()) ] 1.2创建user/serializer.py写序列化器 serializers.ModelSeriaAPIview使用
https://www.cnblogs.com/xiaonq/p/10124104.html1.ModelVIewSet 是对 APIView 封装2.ModelSerializer 是对 Serializer** 1.1 在 user/urls.py 中添加路由 urlpatterns = [ path('apiview/', views.UserInfoViewSet.as_view()), ] 1.2 创建user/serializers.py写序列化器****1.APIView使用
目录APIView使用1.1在user/urls.py中添加路由1.2创建user/serializers.py写序列化1.3 在user/views.py中添加视图函数2.测试接口2.1查询所有用户2.2创建用户更新用户信息 APIView使用 ModelViewSet是对APIView封装 ModelSerializer是对Serializer封装 1.1在user/urls.py中添django-Apiview+serializers的使用
1,APIview使用 (1),ModelViewSet 是对APIview进行封装 (2),ModelSerializer 是对 Serializer 1,1,在user/urls.py中添加路由 urlpatterns = [ path('apiview/', views.UserInfoViewSet.as_view()), ] 1,2创建user/serializer.py写django的View和drf的APIView源码解析
目录django中的View源码解析drf中APIView源码解析 django中的View源码解析 FBV: path('admin/', admin.site.urls), CBV: path('books/', views.BookView.as_view()), 在路由层使用CBV时需要执行 CBV.as_view()方法,使该位置的实参变为一个FBV(函数地址) as_view方法的返回值解决django报错:.accepted_renderer not set on Response
报错如图: 报错原型:视图函数继承错误: 解决:继承 rest_framework.views 里面的APIView