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. .NET dropdownlist控件绑定数据后,添加“全部”项,实现功能

    DropDownList在从数据库中得到数据源绑定后,计划为其添加一个"全部"或"不限"之类的项,添加方法现知的有两种: 1:在脚本中直接添加:<asp: ...

  2. OSIDP-文件管理-12(end)

    概述 文件特性:可长期存储:可在进程间共享:有特定结构. 文件系统提供对文件操作的功能接口:创建.删除.打开.关闭.读和写. 域(field):基本数据单元,一个域包含一个值. 记录(record): ...

  3. NOIP2019 树的重心

    Description \[\sum_{(u,v)\in E}\Biggl(\sum_{x为S_u重心}x+\sum_{y为S_v重心}y\Biggr) \] \(1\leqslant n\leqsl ...

  4. DBEditEh/Edit 文本框内容空白时加上提示文字,输入内容时提示文字不显示

    当文本框没有输入内容且输入焦点不在文本框时,显示提示文字:"请输入帐号"当文本框得到输入焦点时提示文字不显示 unit SkinHintEdit; interface uses W ...

  5. k8s介绍和学习思路

    1. Kubernetes介绍 Kubernetes是一个完备的分布式系统支撑平台.具备完备的集群管理能力,包括多层次的安全防护和准入机制.多租户应用支撑能力.透明的服务注册和服务发现机制.内建的智能 ...

  6. How to Install VMware Tools on CentOS 6.5

    yum install perl gcc make kernel-headers kernel-devel -y [root@centos6 vmware-tools-distrib]# ./vmwa ...

  7. Altium Designer在原理图中复制报错InvalidParameter解决

    Altium Designer 原理图复制出现  InvalidParameter Exception Occurred In Copy    解决方案为将下图红框中的√去掉 将红框中√去掉就点击右下 ...

  8. break跳出循环

  9. git rebase时出现的提示信息

    root@host: /home/wkxnk/project$  git rebase master First, rewinding head to replay your work on top ...

  10. Typora编辑区域空白过大问题

    参考博客:https://blog.csdn.net/m0_55485287/article/details/115207178 在哪个文件编辑? 1.找到使用的主题,打开主题文件夹 2.找到对应的c ...