zoukankan      html  css  js  c++  java
  • djangorestframework

    一 安装djangorestframework

    二 djangorestframework的APIView流程分析

    三 djangorestframework的request分析

    一 安装djangorestframework

    基于 djangorestframework写API,用这个写接口view函数用CBV

    方式一:pip3 install djangorestframework

    方式二:pycharm图形化界面安装

    方式三:pycharm命令行下安装(装在当前工程所用的解释器下)

    二 djangorestframework的APIView流程分析

    请求来的时候先通过restframework先检测,封装,内部有权限,频率,和认证

    request是被djangorestframework封装过了

    三 djangorestframework的request分析

    重写了元类的方法:

    __getattr__  拦截点号运算,如果没有属性,并且没有__getattr__则会报错,如果有此方法(异常处理)就不会报错,没有的属性走到这个方法里,返回指定的值

    __setattr__  赋值运算的时候,会走到这个方法里

    路由层

    from django.conf.urls import url
    from django.contrib import admin
    from api import views
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        # url(r'^book/', views.book),
        url(r'^book/', views.Book.as_view()),
    ]

    视图层

    from django.shortcuts import render,HttpResponse
    # Create your views here.
    import json
    from api import models
    
    # 用APIView 写API
    from rest_framework.views import  APIView
    
    class Book(APIView):
        def get(self,request):
         # 前台不管是那种格式(json,urlencode)传过来的数据都转成了字典放在了 request.data里
         # 以后这种API,从前台传过来的数据都从request.data里取值,以前都是从request.body里取值
    # request.data ret=models.Book.objects.all().values('title') print(ret) ll=list(ret) return HttpResponse(json.dumps(ll)) def post(self,request):
         # 前台如果是json传过来就是字典格式,如果是urlencoded格式传过来就是queryset格式 request.data里可以取到值 request.body里没值
    print(request.data) #有值 print(request.POST) #没值 return HttpResponse('ok')
  • 相关阅读:
    解决方案E: Unable to locate package ros-kinetic-rgbd-launch
    记一件无聊但有意思的小事
    硬件开发相关工具、名词备忘
    Verilog代码规范(持续更新)
    GIT简单使用——多人协作篇
    GIT简单使用——私人库篇
    调试Scrapy过程中的心得体会
    Selenium学习(三)Selenium总是崩溃的解决办法
    Selenium学习(二)入门小例子
    Selenium学习(一)环境搭建
  • 原文地址:https://www.cnblogs.com/xujinjin18/p/9774561.html
Copyright © 2011-2022 走看看