Django RESTful framework 学习记(一)

DRF+Vue.JS前后端分离项目实例(上):使用 Django-Rest-Framework快速实现 RESTful API 接口编程 django-rest-framework (简称**DRF**) 继承了django框架的上述优点,开发与部署不需要第3方库的支持就可以轻松完成数据库CRUD的 REST API开发,并提供完善的鉴权、分级权限控制、测试页面等功能,可以快速地开发出一套高质量的REST API。 本文演示了学生信息查询项目的API接口设计,django-rest-framework函数式编程,CBV视图类编程两种方式实现API, 最后介绍了DRF的页面测试功能 阅读详情

由于想做一个手机充电桩的项目, 而这个项目涉及数据库, 微信小程序, 而微信小程序需要后台给相应的api接口, 无奈的我api不会开发, 再此之前一直学了python, 而且用了django框架写过网站, 心想api不就是一个链接吗? 而网站也是一个链接, 只是返回的数据不一样, 我想api和网站间有联系吧, 后来进过百度, 知道了django就有框架专门写api, 那就是我接下来一段时间要学习的 Django RESTful framework了,  在b站上找了一个老男孩的视频, 就开始了我的api之旅.

先来介绍一下RESTful规范吧!

一: RESTful规范(建议)

     为什么说建议呢?  是因为如果不用这个规范, 也能开发出满足业务逻辑的api, 只是这个规范更加规范, 更加方便而已

1.RESTful概述

RESTful是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。

REST是Representational State Transfer的缩写,是Roy Thomas Fielding在他2000年的博士论文中提出的。其提出的设计概念和准则为:

1. 网络上的所有事物都可以抽象为资源

2. 每个资源都应该有唯一的标识(identifier),对资源的操作不会改变标识

3. 所有的操作都是无状态的

4. 使用标准方法(GET、POST、PUT、PATCH、DELETE)操作资源

2.RESTful规范

2.1 先说说第一点吧, 那就是规范中规定了不同的提交方法分别代表不同的操作数据库的方法, 我们知道数据库常见的是增删改查, 这就对应着数据提交方式: POST, DELETE, PUT, GET方法.

下面来进行举例说明吧, 我使用的是django2.0 python3.7版本.

先来看看fbv模式下的视图.至于怎么创建django工程, 环境搭建我就不说了, 直接看工程下的urls.py

from django.urls import path
from django.contrib import admin
from django.urls import path, include
from django.conf.urls import url
from api import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('api.urls')),
    url(r'^test_FBV/', views.test_FBV),
    url(r'^test_CBV/', views.test_CBV.as_view())
]

然后创建一个app  我的app的名字为api, 所以应该在api下的views.py下写相应的视图方法, 如下代码

from django.shortcuts import render

# Create your views here.
from rest_framework import viewsets
from .models import Student
from .serializers import StudentSerializers
from django.http import HttpResponse
from django.views import View
from django.views.decorators.csrf import csrf_exempt,csrf_protect

# Create your views here.


def test_FBV(request):

    if(request.method == 'POST'):
        return HttpResponse("增加数据")

    if (request.method == 'PUT'):
        return HttpResponse("更新数据")

    if (request.method == 'GET'):
        return HttpResponse("获得数据")

    if (request.method == 'DELETE'):
        return HttpResponse("删除数据")

接下来用RESTClient测试:

和预期想的一样, 其他的就不做测试了, 以下是基于CBV的代码:

from django.shortcuts import render

# Create your views here.
from rest_framework import viewsets
from .models import Student
from .serializers import StudentSerializers
from django.http import HttpResponse
from django.views import View
from django.views.decorators.csrf import csrf_exempt,csrf_protect

# Create your views here.


def test_FBV(request):

    if(request.method == 'POST'):
        return HttpResponse("增加数据")

    if (request.method == 'PUT'):
        return HttpResponse("更新数据")

    if (request.method == 'GET'):
        return HttpResponse("获得数据")

    if (request.method == 'DELETE'):
        return HttpResponse("删除数据")


class test_CBV(View):
    # 以get形式访问会执行get函数,一般情况下获取数据
    def get(self, *args, **kwargs):
        return HttpResponse('获得数据')

    # 以post形式访问的话会执行post函数,一般情况下发送数据
    def post(self, *args, **kwargs):
        return HttpResponse('增加数据')

    def delete(self, *args, **kwargs):
        return HttpResponse('删除数据')

    # 以post形式访问的话会执行post函数,一般情况下发送数据
    def put(self, *args, **kwargs):
        return HttpResponse('更新数据')

 来看看测试的结果:

详细的规范可以参考这个链接:http://www.runoob.com/w3cnote/restful-architecture.html

Django笔记 Django REST Framework实现Web API 1 本文介绍如何使用Django的REST框架来迅速开发WEBAPI。 ##Django REST Framework Django REST Framework可以在Django的基础上迅速实现API,并且自身还带有WEB的测试页面,可以方便的测试自己的API。 阅读详情

相关推荐

django rest framework:从零开始搭建RESTful API

3.修改drfDemo>urls.py,官网文档:https://www.django-rest-framework.org/api-guide/routers/9.验证JWT配置成功:使用/api/users/login/请求拿到的token,再次请求/api/drfDemo/add/,会发现请求成功,说明JWT配置成功。8.验证JWT配置成功:访问/api/users/login/,拿到token,这里的账户密码是django后台管理的账户。

老衲爱洗头的博客 1224

​ 一:drf --drf入门规范

目录一:web开发模式1.1 前后端不分离1.2 前后端分离二:API接口三:接口测试工具:Postman四:RESTful API规范restful十条规范1 数据的安全保障2 接口特征表现3 多数据版本共存4 (重点)数据即是资源,均使用名词(可复数)5 (重点)资源操作由请求方式决定(method)过滤,通过在url上传参的形式传递搜索条件7 响应状态码7.1 正常响应7.2 重定向响应7.3 客户端异常7.4 服务器异常8 错误处理,应返回错误信息,error当做key9 返回结果,针对不同操作,服

wmyzzz 1717

《uni-app 长列表优化:虚拟列表(vue-virtual-scroller)解决 1000+ 数据渲染卡顿》(附虚拟列表封装与多端适配)

本文详细介绍了虚拟列表技术在前端长列表渲染中的优化方案。针对传统v-for渲染导致的性能问题(内存占用高、渲染阻塞、滚动卡顿),提出基于vue-virtual-scroller的虚拟列表解决方案,通过可视区域渲染和DOM复用实现性能突破。文章包含核心原理、组件封装、多端适配及性能对比,并给出常见问题的解决方法。实践表明,该方案可将1000条数据的首次渲染时间从3800ms降至420ms,滚动FPS提升至55帧,显著改善用户体验。

qq_59041750的博客 2107

挑战全网最全之django REST framework(DRF)教程

一、认识DRF 1、restful简介 在前后端分离的应用模式中,我们通常将后端开发的每个视图都称为一个接口,或者API,前端通过访问接口来对数据进行增删改查。 restful是一种后端API接口规范 1.1 http动词 对于资源的具体操作类型,由HTTP动词表示。 常用的HTTP动词有下面四个(括号里是对应的SQL命令): GET(SELECT):从服务器取出资源(一项或多项)。 POST(CREATE):在服务器新建一个资源。 PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。

Timmy的博客 4万+

手把手教你用手机号注册的Apple ID成功登录Developer账户(避坑指南)

本文详细解析了使用手机号注册的Apple ID登录开发者账户时常见的'不符合使用条件'报错问题,并提供了从添加可验证邮箱到设置主账号的四步解决方案。特别针对Apple Developer账户的验证机制,帮助开发者避免因邮箱缺失导致的登录失败,提升账户激活成功率。

z5a6b的博客 1218

用yolov8训练自己的模型并调取摄像头实时检测,新手小白超友好教程!逻辑梳理,从0开始逐步实操❤

帮新手小白学会用yolov8,包含多篇高质量博客整理

Lhhhhds的博客 2941

django-restful-framework基础知识

DRF基础知识

留下虚度光阴的一些证据。 3094

微信自动化进阶:Python识别特定消息并自动回复(基于win32api控件操作)

本文详细介绍了如何使用Python和win32api实现微信消息的智能监控与自动回复。通过精准识别聊天记录中的特定关键词,结合多级匹配策略和性能优化技巧,构建稳定高效的自动化回复系统,适用于企业客服、个人助手等场景。

weixin_42663213的博客 441

Django(16):rest_framework框架使用指南

rest_framework框架使用总结

qq_43745578的博客 4317

【学习系列】SAP RAP 16:RAP应用部署集成至Fiori Launchpad 【On-Premise】

本文详细介绍了如何将开发完成的RAP应用部署到S4HANA 2023 On-Premise环境并集成到Fiori Launchpad的完整流程。主要内容包括:1)通过ADT工具创建Fiori项目并配置外部IDE(VSCode);2)使用npm命令部署应用到系统;3)通过事务代码创建语义对象、磁贴目录和目标映射;4)配置PFCG角色分配;5)补充了部署失败解决方案、翻译问题处理、自定义主题设置以及登录页面LOGO修改等内容。文章提供了step-by-step的操作指南,帮助开发者将预览模式的应用正式部署到生产

DeveloperMrMeng的博客 632

yolov5 FPGA实现及verilog代码仿真

本文介绍了一种基于FPGA的卷积神经网络加速器设计,采用混合架构实现网络功能。该系统将训练和图像预处理等复杂计算保留在PC端执行,仅将主干网络部署在FPGA上。由于片上资源限制,建议通过外接DDR存储扩展容量。文章提供了完整的Verilog HDL源码,包括卷积单元(convUnit)、卷积层(convLayerSingle)和处理单元(processingElement)等核心模块,均已通过仿真验证。该设计采用流水线结构,使用浮点运算单元实现卷积计算,支持32x32图像输入和5x5卷积核处理。系统架构图中

QQ_778132974的博客 575

Django REST Framework教程(1): 为什么要学习DRF, 什么是序列化和RESTful的API

小编曾经承诺的Django REST Framework原创系列教程终于赶上了2020年那年夏天的尾巴,姗姗而来。我们将用不少于10篇的原创文章系统性地介绍如何使用这个框架开发符合RES...

大江狗 4288

OpenClaw使用ClawHub安装skill网络不稳定?Rate limit exceeded报错?试试这个国内高速镜像工具!

使用 ClawHub 安装 Skill 时遇到 🌐 网络不稳、❌ Rate limit 或命令不可用?使用这个镜像工具,轻松解决skill安装问题,⚡

XiaoqiangClub的博客 1260

Django Restful Framework

Django Drf 使用感想关于Restful关于Django Restful Framework 关于Restful 所有得请求,都是需要依赖一个对象得。 比如登录请求,要依赖用户对象; 比如创建文章,需要依赖文章对象 比如借书,需要依赖图书-租借服务对象 进而,在这些对象得基础上,通过请求Method,我们就会知道请求得目的。 Get 获取对象信息 Put 更新对象信息 Post 新增对象信息 Delete 删除对象信息 从而,以借书为例,我们可以设计如下: Url Method No

落笔成名 502

【深度学习】脸部修复,CodeFormer,论文,实战

Blind face restoration是一个高度 ill-posed 的问题,通常需要辅助引导来 1) 改善从降级输入到期望输出的映射,或者 2) 补充在输入中丢失的高质量细节。在本文中,我们展示了在一个小的代理空间中学到的离散码本先验可以通过将盲目的面部恢复建模为 a code prediction task来大大减少恢复映射的不确定性和模糊性,同时为生成高质量面部提供丰富的视觉元素。

q742971636的博客 2992

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Django REST Framework实战指南:从零构建企业级RESTful API

Python-100-Days项目为开发者提供了从基础到高级的RESTful接口开发完整指南。本文将深入探讨如何使用Django REST Framework(DRF)构建规范、高效、安全的API服务,涵盖架构设计、序列化、认证授权、性能优化等关键环节,帮助中高级开发者快速掌握企业级API开发的核心技能。 ## 核心关键词与长尾关键词 **核心关键词**:Django REST Framewo

gitblog_00297的博客 1109

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

django restful 请求_django学习之django restful framework(一)

在学习django restful framework之前我们要先回顾一下:1. 开发模式- 普通开发方式(之前我们在开发的时候前后端放在一起写,也就是说一个人会负责前端和后端的代码,这样就会导致开发的效率较低,而且如果后端开发人员的前端基础较差的话,就会导致产品的质量不是很好)- 前后端分离(前端人员做前端,VUE,后端的人员写后端的代码,因为很多的时候通过vue都是通过json数据进行传输的,...

weixin_29416459的博客 254

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

django restful framework教程大全

一. 什么是RESTful REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移” REST从资源的角度类审视整个网络,它将分布在网络中某个节点的资源通过URL进行标识,客户端应用通过URL来获取资源的表征,获得这些表征致使这些应用转变状态 REST与技术无关,代表的是一种软件架...

a9794666的博客 795

python django restful_详解Django rest_framework实现RESTful API

一、什么是REST面向资源是REST最明显的特征,资源是一种看待服务器的方式,将服务器看作是由很多离散的资源组成。每个资源是服务器上一个可命名的抽象概念。因为资源是一个抽象的概念,所以它不仅仅能代表服务器文件系统中的一个文件、数据库中的一张表等等具体的东西,可以将资源设计的要多抽象有多抽象,只要想象力允许而且客户端应用开发者能够理解。与面向对象设计类似,资源是以名词为核心来组织的,首先关注的是名词...

weixin_39561577的博客 360

Django REST framework Restful风格

对于接口的请求方式与路径,每个后端开发人员可能都有自己的定义方式,风格迥异。 是否存在一种统一的定义方式,被广大开发人员接受认可的方式呢? 这就是被普遍采用的API的RESTful设计风格。 一. 起源 REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的。 Fielding是一个非常重要的人,他是HTTP协议(1.0版和1.1版)的主要设计者、Apa...

松鼠豪的坚果 827

17-Django REST framework及RESTful简介

Django REST framework-REST framework及RESTful简介

小白的博客 719

python rest framework_详解Django rest_framework实现RESTful API

一、什么是REST面向资源是REST最明显的特征,资源是一种看待服务器的方式,将服务器看作是由很多离散的资源组成。每个资源是服务器上一个可命名的抽象概念。因为资源是一个抽象的概念,所以它不仅仅能代表服务器文件系统中的一个文件、数据库中的一张表等等具体的东西,可以将资源设计的要多抽象有多抽象,只要想象力允许而且客户端应用开发者能够理解。与面向对象设计类似,资源是以名词为核心来组织的,首先关注的是名词...

weixin_33622032的博客 1098

【接口文档】Django restful framework中自动生成API文档

Django restful framework中自动生成API文档 自动生成api文档(不管是函数视图还是类视图都能显示) 1.安装rest_framework_swagger库 pip install django-rest-swagger 2.在项目下的 urls.py 中加入如下: from rest_framework_swagger.views import get_sw...

Allen . Liu 2515

django-rest-framework的使用

同步更新于个人博客系统:django-rest-framework的使用 同步更新于个人博客系统:django-rest-framework的使用 同步更新于个人博客系统:django-rest-framework的使用 RESTFUL 在学习这个第三方库之前,我们需要了解什么是restful!度娘给的解释如下: RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。RESTFUL适用于移动互联网厂商作为业务接口的场景,实现第三方OTT调

max_LLL的博客 5762

详解Django rest_framework实现RESTful API

这篇文章主要介绍了详解Django rest_framework实现RESTful API,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 一、什么是REST 面向资源是REST最明显的特征,资源是一种看待服务器的方式,将服务器看作是由很多离散的资源组成。每个资源是服务器上一个可命名的抽象概念。因为资源是一个抽象的概念,所以它不仅仅能代表服务器文件系统...

weixin_30247159的博客 268
上一篇: django csrf_token实现与屏蔽
下一篇: python进阶--装饰器
零涂
博客等级 码龄9年 455粉丝 105原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

零涂

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值