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')
  • 相关阅读:
    [原创] Python3.6+request+beautiful 半次元Top100 爬虫实战,将小姐姐的cos美图获得
    手算平方根和基于 Java BigInteger 的大整数平方根的实现
    Spyder项目创建,打开与使用
    手动实现自己的spring事务注解
    springboot2.x配置druid sql监控
    基于zookeeper实现分布式锁
    数据库中间件之mycat读写分离
    springboot + shiro 构建权限模块
    数据库中间件之mycat安装部署(一)
    使用jdk8 stream简化集合操作
  • 原文地址:https://www.cnblogs.com/xujinjin18/p/9774561.html
Copyright © 2011-2022 走看看