码迷,mamicode.com
首页 > 其他好文 > 详细

djangorestframework

时间:2018-10-11 21:59:34      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:data   charm   rtc   queryset   dump   pos   字典   return   pip   

 

一 安装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)

 

djangorestframework

标签:data   charm   rtc   queryset   dump   pos   字典   return   pip   

原文地址:https://www.cnblogs.com/xujinjin18/p/9774561.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!