django restframework的简单使用
django restframework的简单使用
1.快速上手
- 配置: (pip install djangorestframework==3.12.4)
 
# settings.py
INSTALLED_APPS = [
    'rest_framework'
]
REST_FRAMEWORK = {
    # DRF的相关配置后面都在这里
}
- urls和views
 
# urls.py
from django.urls import path
from app01 import views
urlpatterns = [
    path('api/user/', views.UserView.as_view()),
]
# views.py
from rest_framework.views import APIView
from rest_framwork.response import Response 
class UserView(APIView):
    def get(self, request, *args, **kwargs):
        return Response({"code": 0, 'data': 'xxxx'})
    def post(self, request, *args, **kwargs):
        return Response({"code": 0, 'data': 'xxxx'})
2.drf相关
 drf重写了as_view()和dispatch()方法. 添加了一些功能:
- as_view(继承了父类中as_view): 免除了csrf的验证. 一般前后端分离不使用csrf. 后期会使用jwt认证
 - dispatch(没继承父类的dispatch): 内部添加了版本处理, 认证, 权限, 访问频率
 

3.drf对于请求数据的封装
reqeust的使用:
# views.py
from rest_framework.views import APIView
from rest_framwork.response import Response 
class UserView(APIView):
    def get(self, request, *args, **kwargs):
        print(request._request.GET)
        print(request._request.method)  # 通过对象嵌套了找到原始的request
        print(request._request.POST)
        print(request.query_params)  # 本质上就是request._reqeust.GET
        print(request.data)  # 读取请求体并处理, eg: 发来Json, 内部会将其反序列化
        return Response({"code": 0, 'data': 'xxxx'})
    def post(self, request, *args, **kwargs):
        return Response({"code": 0, 'data': 'xxxx'})

django restframework的简单使用的更多相关文章
- django restframework jwt
		
既然要来学习jwt(json web token),那么我们肯定是先要了解jwt的优势以及应用场景--跨域认证. $ pip install djangorestframework-jwt 传统coo ...
 - django: rest-framework的 分页和过滤
		
django: rest-framework的 分页和过滤 2018年06月28日 10:09:01 weixin_42359464 阅读数:136 标签: flaskrestframeworkdja ...
 - django restframework 的日常使用
		
本文讨论 django restframework 的日常使用,满足常用 api 编写的需求,比如 List, Detail, Update, Put, Patch 等等.探讨 django rest ...
 - 测开大佬告诉你:如何5分钟快速创建restful风格的API接口-使用django restframework框架
		
一.思考❓❔ 1.创建API接口难吗? 软件测试工程师: 只测过API接口, 从没创建过 应该需要掌握一门后端开发语言和后端开发框架吧!? 脑容量有限,想想就可怕 2.如何创建API接口呢? 使用Dj ...
 - 用django创建一个简单的sns
		
用django创建一个简单的sns 1.首先创建一个工程newsns django-admin.py startproject newsns 在工程目录下新建一个文件夹templates,在该文件夹下 ...
 - django restframework serializer 增加自定义字段
		
在使用django restframework serializer 序列化在django中定义的model时,有时候我们需要额外在serializer中增加一些model中没有的字段.有两种方法实现 ...
 - django初探-创建简单的博客系统
		
django第一步 1. django安装 pip install django print(django.get_version()) 查看django版本 2. 创建项目 打开cmd,进入指定目录 ...
 - django初探-创建简单的博客系统(二)
		
上篇django初探-创建简单的博客系统(一)已经记录了Django实现博客的发布的整个过程,接下来继续说明博客标题和内容的显示. 显示博客详细 将博客内容保存到数据库还不是发布博客的终极目的,博客一 ...
 - django restframework
		
一.django restframework 请求流程源码剖析 上面的认证一个流程是rest_framework的关于APIauth的认证流程,,这个流程试用权限.频率.版本.认证.这个四个组件都是通 ...
 - Django的认证系统和Django admin的简单使用
		
Django自带的用户认证 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Djang ...
 
随机推荐
- ssm框架基本原理
			
一.前言 SM框架是标准的MVC模式,将整个系统划分为四层:View层,Controller层,Service层,Dao层 SSM(Spring+SpringMVC+MyBatis)框架集由Sprin ...
 - html超链接相关代码
			
1. <IDOCTYPE html>< html><head><title>图像和超链接</title><meta http-equi ...
 - restfull风格传参
 - Redis学习(黑马篇)
			
1.redis是一个键值型数据库即在Redis内存的数据都是键值对的格式,如: 2.NOSQL非关系型数据库与MySQL关系型数据库对比: 非结构化类型分为:键值类型(Redis)(value支持多种 ...
 - mybatis-plus自动填充踩坑
			
学习使用mybatis-plus的自动填充功能,对create_time和update_time做一个自动填充,期间碰到了一些问题,记录一下问题和相关代码 在实体类字段上增加注解@TableField ...
 - asyncio基础用法
			
说明:需要Python 3.7+ 1.并发运行两个coroutine,写法一: 用Task import asyncio import time async def say_after(delay, ...
 - JDK 7 HashMap 并发情况下的死锁问题
			
目录 问题描述 详细解释 问题描述 JDK7的 HashMap 解决冲突用的是链表,在插入链表的时候用的是头插法,每次在链表的头部插入新元素.resize() 的时候用的依然是头插,头插的话,如果某个 ...
 - Redis Stream Commands 命令学习-1 XADD XRANGE XREVRANGE
			
概况 A Redis stream is a data structure that acts like an append-only log. You can use streams to reco ...
 - 【新版】使用 go-cqhttp 扫码登录,一键接入 ChatGPT 机器人到 QQ 群
			
目录 项目效果 安装 go-cqhttp 虚拟文件 启动 ChatGPT 项目效果 由于 ChatGPT 目前只能在漂亮国使用,所以想要在国内使用 ChatGPT 必然险阻重重 不仅时时刻刻要跟企鹅公 ...
 - 记一次 .NET某汽车零件采集系统 卡死分析
			
一:背景 1. 讲故事 前段时间有位朋友在微信上找到我,说他的程序会出现一些偶发卡死的情况,让我帮忙看下是怎么回事,刚好朋友也抓到了dump,就让朋友把 dump 丢给我,接下来用 windbg 探究 ...