django restframework的简单使用

1.快速上手

  1. 配置: (pip install djangorestframework==3.12.4)
# settings.py
INSTALLED_APPS = [
'rest_framework'
]
REST_FRAMEWORK = {
# DRF的相关配置后面都在这里
}
  1. 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()方法. 添加了一些功能:

  1. as_view(继承了父类中as_view): 免除了csrf的验证. 一般前后端分离不使用csrf. 后期会使用jwt认证
  2. 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的简单使用的更多相关文章

  1. django restframework jwt

    既然要来学习jwt(json web token),那么我们肯定是先要了解jwt的优势以及应用场景--跨域认证. $ pip install djangorestframework-jwt 传统coo ...

  2. django: rest-framework的 分页和过滤

    django: rest-framework的 分页和过滤 2018年06月28日 10:09:01 weixin_42359464 阅读数:136 标签: flaskrestframeworkdja ...

  3. django restframework 的日常使用

    本文讨论 django restframework 的日常使用,满足常用 api 编写的需求,比如 List, Detail, Update, Put, Patch 等等.探讨 django rest ...

  4. 测开大佬告诉你:如何5分钟快速创建restful风格的API接口-使用django restframework框架

    一.思考❓❔ 1.创建API接口难吗? 软件测试工程师: 只测过API接口, 从没创建过 应该需要掌握一门后端开发语言和后端开发框架吧!? 脑容量有限,想想就可怕 2.如何创建API接口呢? 使用Dj ...

  5. 用django创建一个简单的sns

    用django创建一个简单的sns 1.首先创建一个工程newsns django-admin.py startproject newsns 在工程目录下新建一个文件夹templates,在该文件夹下 ...

  6. django restframework serializer 增加自定义字段

    在使用django restframework serializer 序列化在django中定义的model时,有时候我们需要额外在serializer中增加一些model中没有的字段.有两种方法实现 ...

  7. django初探-创建简单的博客系统

    django第一步 1. django安装 pip install django print(django.get_version()) 查看django版本 2. 创建项目 打开cmd,进入指定目录 ...

  8. django初探-创建简单的博客系统(二)

    上篇django初探-创建简单的博客系统(一)已经记录了Django实现博客的发布的整个过程,接下来继续说明博客标题和内容的显示. 显示博客详细 将博客内容保存到数据库还不是发布博客的终极目的,博客一 ...

  9. django restframework

    一.django restframework 请求流程源码剖析 上面的认证一个流程是rest_framework的关于APIauth的认证流程,,这个流程试用权限.频率.版本.认证.这个四个组件都是通 ...

  10. Django的认证系统和Django admin的简单使用

    Django自带的用户认证 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Djang ...

随机推荐

  1. ssm框架基本原理

    一.前言 SM框架是标准的MVC模式,将整个系统划分为四层:View层,Controller层,Service层,Dao层 SSM(Spring+SpringMVC+MyBatis)框架集由Sprin ...

  2. html超链接相关代码

    1. <IDOCTYPE html>< html><head><title>图像和超链接</title><meta http-equi ...

  3. restfull风格传参

  4. Redis学习(黑马篇)

    1.redis是一个键值型数据库即在Redis内存的数据都是键值对的格式,如: 2.NOSQL非关系型数据库与MySQL关系型数据库对比: 非结构化类型分为:键值类型(Redis)(value支持多种 ...

  5. mybatis-plus自动填充踩坑

    学习使用mybatis-plus的自动填充功能,对create_time和update_time做一个自动填充,期间碰到了一些问题,记录一下问题和相关代码 在实体类字段上增加注解@TableField ...

  6. asyncio基础用法

    说明:需要Python 3.7+ 1.并发运行两个coroutine,写法一: 用Task import asyncio import time async def say_after(delay, ...

  7. JDK 7 HashMap 并发情况下的死锁问题

    目录 问题描述 详细解释 问题描述 JDK7的 HashMap 解决冲突用的是链表,在插入链表的时候用的是头插法,每次在链表的头部插入新元素.resize() 的时候用的依然是头插,头插的话,如果某个 ...

  8. 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 ...

  9. 【新版】使用 go-cqhttp 扫码登录,一键接入 ChatGPT 机器人到 QQ 群

    目录 项目效果 安装 go-cqhttp 虚拟文件 启动 ChatGPT 项目效果 由于 ChatGPT 目前只能在漂亮国使用,所以想要在国内使用 ChatGPT 必然险阻重重 不仅时时刻刻要跟企鹅公 ...

  10. 记一次 .NET某汽车零件采集系统 卡死分析

    一:背景 1. 讲故事 前段时间有位朋友在微信上找到我,说他的程序会出现一些偶发卡死的情况,让我帮忙看下是怎么回事,刚好朋友也抓到了dump,就让朋友把 dump 丢给我,接下来用 windbg 探究 ...