01-Django REST framwork 板块( 01-REST规范)

JWT浅析 文章目录一、概念二、背景分析1.传统基于`session`的会话管理/认证a. `session`基本认知b. `session`的认证方式暴露的问题2. 基于token的会话管理/认证三、主角`JWT`1. jwt基本结构A .头部 headerB. 负载 payloadC. 签证/签名 signature2.使用3. jwt优缺点分析4. jwt的引申扩展 一、概念 Json web tok... 阅读详情

一、RESTFUL API 设计

  1. API与用户的通信协议,总是使用HTTPs协议。
  2. 域名
    • https://api.example.com 尽量将API部署在专用域名(会存在跨域问题,使用jsonp来解决)
    • https://example.org/api/ API很简单
  3. 版本
    • URL,如:https://api.example.com/v1/
    • 请求头 跨域时,引发发送多次请求
  4. 路径,视网络上任何东西都是资源,均使用名词表示(可复数)
https://api.example.com/v1/zoos
https://api.example.com/v1/animals
https://api.example.com/v1/employees
  1. method
    • GET :从服务器取出资源(一项或多项)
    • POST :在服务器新建一个资源
    • PUT :在服务器更新资源(客户端提供改变后的完整资源)全部更新
    • PATCH :在服务器更新资源(客户端提供改变的属性)局部更新
    • DELETE :从服务器删除资源
  2. 过滤,通过在url上传参的形式传递搜索条件
    • https://api.example.com/v1/zoos?limit=10:指定返回记录的数量
    • https://api.example.com/v1/zoos?offset=10:指定返回记录的开始位置
    • https://api.example.com/v1/zoos?page=2&per_page=100:指定第几页,以及每页的记录数
    • https://api.example.com/v1/zoos?sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序
    • https://api.example.com/v1/zoos?animal_type_id=1:指定筛选条件
  3. 状态码

状态码与信息结合{“code”:1000,"msg”:“xxx”},
可以与前端商量用状态码还是code(自己定义)

# 几个常用的HTTP状态码
200 OK - [GET]:服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)。
201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。
202 Accepted - [*]:表示一个请求已经进入后台排队(异步任务)
204 NO CONTENT - [DELETE]:用户删除数据成功。
400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。
401 Unauthorized - [*]:表示用户没有权限(令牌、用户名、密码错误)。
403 Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的。
404 NOT FOUND - [*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。
406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。
410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。
422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。
500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。

更多看这里:http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

二、知识点

1. 10个restfull规范,分析记忆
2. 常见重点分析
a. 用过rest framework,那么写视图的时候,都继承过哪些类?
b. 用过比较接近原生的类,还可以继承原生的其他子类
c. 哪里用过面向对象的封装?
-  rest framework中的request就是对Django的request进行的封装
d. 哪里用过面向对象的继承?
- rest_framework的view继承自APIview
e. 多态、鸭子类型?
 -  只要你会鸭子呱呱叫,我就认为你是鸭子类型
 - 只要你含有  .方法   ,都允许
     class WX:
         def  send():
             pass
     
     class Email():
         def  send():
             pass

     class Msg():
         def  send():
             pass
             
     def func(arg):
         arg.send()
             
     obj = Email()
     func(obj)
     
     # 只要能send,不管是什么,都能允许。
Django Restful 框架设计规范 - 英文原文 Django Restful 框架设计规范 - 英文原文,作为Restful框架设计的规范参考 立即下载

相关推荐

PostGIS 小白入门详细指南

PostGIS 是 PostgreSQL 的一个扩展,它将 PostgreSQL 转变为一个功能强大的空间数据库,使其能够存储、查询和分析地理空间数据。PostGIS 遵循开放地理空间联盟(OGC)的标准,支持各种空间数据类型和操作,如点、线、多边形、缓冲区、空间连接等。存储各种空间数据类型(如几何类型和地理类型)空间索引,提高查询性能丰富的空间函数和操作支持投影和坐标系统转换城市规划与管理环境监测与分析物流与运输优化地图制作与可视化位置服务与导航。

落魄书生的职业学习生涯 1万+

Django04——Django项目规范的目录结构

文章目录1、什么是应用2、新建应用3、新建模板4、配置总路由5、新建应用子路由,并配置子路由6、定义视图函数7、测试8、小结 1、什么是应用 一个项目中又可以细分为多个应用(application,简写app)。在Django中,将完成某个或某几个功能的集合称为一个应用。所以一个功能比较多的网站常常是由多个应用组成的。在每个django项目中可以包含多个app,相当于一个大型项目中的分系统、子模块、功能部件等等,相互之间比较独立,但也有联系。所有的app共享项目资源。 通常会新建一个apps文件夹,专门用来

Blog of Lytracy 6581

数据资产目录(SailCatalog)和数据地图(SailMap)

笔者接下来准备开发大数据平台(XSailboat)中的数据资产目录(SailCatalog)和数据地图(SailMap)相关的功能,本文用以记录笔者关于此部分功能的概念梳理和主体功能设计。

OkGogooXSailboat的博客 2327

Django-rest-framework入门规范

Django-rest-framework入门规范 文章目录Django-rest-framework入门规范一、web应用开发模式1.前后端不分离2.前后端分离二、API接口1.RESTFUL介绍2.RESTful API设计指南3.API与用户的通信协议4.RestFul API接口设计规范api接口接口文档:5.restful规范(10条,规定了这么做,公司可以不采用)三、postman的使用四、drf的安装与介绍1.Django Rest_Framework介绍环境安装与配置特点:安装DRF使用DR

淘小欣的博客 1746

【DaVinci Configurator专题】-5-通过Data Mapping自动创建CAN信号关联的Port并添加到APP SWC

目录 1 导入CAN Matrix变更后的Arxml文件 2 自动创建CAN信号关联的APP Port 3 CAN信号与App SWC的接口映射/连接 4 结尾 <--返回「实战篇」博文-总目录--> <--返回「Autosar从入门到精通-实战篇」专栏主页--> 关键词: DaVinci Developer DaVinci Configurator Pro ARXML AUTOSAR System Description Network Explorer 1

「汽车电子助手」的博客 5130

ArcGIS Pro 制作这种地图海报

ArcMap 版本与 ArcGIS Pro 版本的制图功能相差太多,无论从美观上还是制图效率都远远优于 ArcMap,用了一段时间的 ArcGIS Pro ,真心推荐有条件的大家赶紧试一试!一个软件也能搞定一张不错的海报哦!----吐槽:好的设计真的是门花时间的活,这个教程大概花了我7小时左右,我都忘了我自己教程中截图多少张了!(可能是我速度太慢了)测试数据:阿里云盘分享-----北极海冰数据.https://www.aliyundrive.com/s/SUhsnqfkmXh。

J_Giser的博客 1430

Django项目规范化(虚拟环境、目录结构、数据库权限、建表、Media、日志)

调整Django项目目录是为了提高项目的可维护性、可扩展性、协作性,使组织结构更清晰,提高代码可读性,使开发人员更清晰的理解和定位调整后的目录├── Project_api # 项目根路径├── logs/ # 项目运行时/开发时产生的日志【软件包】├── manage.py # 脚本文件├── Project_api/ # 项目主应用,开发时的代码保存【软件包】├── apps/ # 保存所有app的目录【软件包】

AZURE060606的博客 2754

【温室气体数据集】CAMS 发布的温室气体(GHG)数据集总结

【温室气体数据集】CAMS 发布的温室气体(GHG)数据集总结

WW、forever的博客 555

django-rest-framework(二)(restful规范)

restful规范 1 .根据method的不同执行不同的操作: GET (SELECT):从服务器检索特定资源,或资源列表。 POST (CREATE):在服务器上创建一个新的资源。 PUT (UPDATE):更新服务器上的资源,提供整个资源。 PATCH (UPDATE):更新服务器上的资源,仅提供更改的属性。 DELETE (DELETE):从服务器删除资源。 2.API尽量采用通过安全...

wphoenix的博客 494

【AutoSAR】【以太网】TCP/IP 栈详述与配置

目录 一、TCP/IP栈架构 二、TCP\IP栈的可扩展性 三、以太网协议V4 四、以太网协议 V6 五、基于IP的协议 六、函数调用序列图 一、TCP/IP栈架构 根据以上架构图,该栈主要包括:UPD\TCP\DHCP\ICMP\IPV4\IPV6\ARP; 二、TCP\IP栈的可扩展性 TCP\IP栈为适应不同的应用场景需求,将分为三类: 配置工程里的配置项: 三、以太网协议V4 1 IPV4 Internet Protocol (IP)是T.

专注汽车软件开发、AutoSAR、车载以太网、SOA、EE架构。 5696

vue3 - 最新详细实现高德地图绘制动态热力图详细教程,在某区域或城市地图上做“热力图层“展示人流量、旅游人口密度、热量图、全国地区地理热力图,利用颜色的深浅表示密度或强度等场景(详细示例代码教程)

vue3,nuxt3,高德地图,热力图,绘制热力图层,人流量,vue3使用高德地图实现某个区域热力图,vue3高德地图api加载热力图及关闭,接收热力图数据并渲染热力图,关掉热力图,Vue使用高德API制作热力图,热力图加载不出来,电子围栏围住热力图,vue3中使用高德地图渲染热力图组件,高德地图使用热力图详细教程,报错,卡顿,出不来怎么办,无法关闭,怎么解决这个问题,出错,城市名称,城市某个街道,城区,省份,市区,县城,乡镇,村,各省份的热力图,交通流量,人口流量,密度,旅游出行,人口数量,颜色介绍,深浅

✅ 精选推荐文章 5205

Django项目目录及项目文件介绍

Django项目目录及项目文件介绍

沉觞的博客 5395

在 NVIDIA DGX Spark 上运行 vLLM + Open WebUI

DGX Spark 和 GX10 都是性能强大的机器,但只有将它们视为交互式工作站而非精简版服务器,才能真正发挥它们的优势。合理利用共享资源,规划并发工作负载,并谨慎控制内存限制。做到这些,vLLM 与 Open WebUI 的结合就能成为可靠​​的日常工具,而不是脆弱的实验品。DGX平台本身价格不菲,但这并非体验此类硬件的唯一途径。多家厂商提供基于相同核心架构、价格更为亲民的系统,这些系统通常配备容量较小的固态硬盘或配置更为简化,但基本性能并未改变。

iCloudEnd的博客 1750

Django-rest framework开发:Restful 接口规范

Fielding将他对互联网软件的架构原则,定名为REST,即Representational State Transfer的缩写。如果一个架构符合REST风格,就称它为RESTful架构。

一枚coder的精进(荆棘)之路 927

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

django项目规范目录结构及将敏感信息配置在环境变量中

settings配置文件区分环境 使用django-admin startproject创建的项目下只有一个settings.py配置文件,然而在规范开发中是将开发环境的配置文件和生产环境的配置文件区分开的,我建立的一个app01项目的目录如下: 将所有配置文件都放在叫做config的目录下,此时需要修改manage.py和wsgi.py文件(因为目录变了): manage.py如下修改: wsgi.py文件也要进行修改: 如果项目使用了websicket编程还需要将asgi.py文件进行修改。

奔跑的蜗牛的博客 589

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Django RESTful规范

Restful : web服务交互:   我们在浏览器中能看到的每个网站, 都是一个web服务. 那么我们在提供每个web服务的时候, 都需要前后端交互. 前后端交互就一定有一些实现方案, 我们通常叫web服务交互方案.   目前主流的三种web服务交互方案:     REST(Representational State Transfer) 表述性状态转移     SOAP(...

weixin_30950887的博客 164

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Django-目录结构

一、创建的项目下,会自动出现一个和项目名称一模一样的文件夹,文件夹有以下文件,和项目在同一级目录下,有一个manage.py文件,方便以各种命令管理django项目 __init__.py #空文件 asgi.py #一个 ASGI 兼容的 Web 服务器的入口,以便运行你的项目。 settings.py #django项目的配置文件 urls.py # 网站映射关系 wsgi.py#一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。 manage...

goforitaaa的博客 2510

Django项目目录结构及一些注意点

1.将app放在apps文件夹中,将改文件夹设置为 source root,便于引用。两个app不可以互相引用,可以利用第三个app实现一些操作。 2.将一些多媒体文件放在media中的相应app名称目录下。还要在项目根目录下的settings中配置media的路径 #媒体文件目录 MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BA

陈子昂的博客 1万+

创建一个规范的django项目

1. 创建项目 2. 创建static目录及配置   1.创建放css, javascript,img的目录   2.在settings.py中将static绝对路径保存到变量STATICFILES_DIRS中。 3. 创建app及配置   3.1 我们希望尽量将各个模块分开,来给程序解耦,降低开发、维护和版本迭代的难度。所以创建多个APP   3.2但是对于复杂的工程来说,每一个a...

weixin_30387339的博客 307

session与cookie

网络请求中的cookie与set-Cookie的交互模式和作用 文章目录网络请求中的cookie与set-Cookie的交互模式和作用1.当很多人访问统一个网服务器,服务器如何来区分不同的用户呢?2.我们经常说浏览器关闭后session就会被清除,那session有生命周期么?3.cookie会被缓存,sessionid保存在cookie中,sessionid一定会被清除么?4.cookie保存用...

AggressionStorm的博客 37万+

Django中间件Middleware

文章目录django中间件一、中间件详细分析1.django配置文件`settings.py`2.自定义中间件`middleware.py`3.注意事项:4.看图分析二、简化版,以及参数分析三、应用实例 django中间件 一、中间件详细分析 1.django配置文件settings.py # settings.py MIDDLEWARE = [ 'django.middleware.se...

AggressionStorm的博客 29万+

数据库加锁,乐观锁、悲观锁

文章目录一、概念悲观锁(Pessimistic Lock)乐观锁(Optimistic Lock)使用场景二、具体实现方式sql层面Django层面 一、概念 悲观锁(Pessimistic Lock) 每次获取数据的时候,都会担心数据被修改,所以每次获取数据的时候都会进行加锁(读锁、写锁、行锁等),确保在自己使用的过程中数据不会被别人修改,使用完成后进行数据解锁。由于数据进行加锁,期间对该数据...

AggressionStorm的博客 26万+

03-Django REST framwork 板块(03-认证、权限、节流)

文章目录1. 认证2. 权限3. 访问频率限制 1. 认证 2. 权限 3. 访问频率限制 拿IP来记录,对于没登录的匿名用户,我们能拿到的也只有IP,要是换IP,这个控制不了(只在Django内部实现的功能内) ...

AggressionStorm的博客 21万+

Django中models字段含义、用法

Model 文章目录Model一、model基本结构1.字段名称、含义2.参数含义3.元信息Meta(干预数据库建表名等操作)4.扩展二、连表结构 *****1.字段以及参数三、表的操作(正向查询按字段,反向查询按表名)1.基本操作(增、删、改、查)2.表操作进阶(牛逼的 双下划线 __ )3.其他4.联表操作(利用 双下划线 __ )1. ==一对一操作==2.==一对多==3.==多对多...

AggressionStorm的博客 20万+

a3.sqlalchemy-scoped_session

scoped_session防止内存泄漏,保护性session的创建。 SQLAlchemy 的 scoped_session 是啥玩意 通常我们用 SQLAlchemy 写数据的时候要创建 Session 对象来维护数据库会话,用完了再关掉。但是听说还有个叫scoped_session的玩意,这是做啥用的? 这东西其实与 web 应用有一些关系。我们在使用 Django 的 ORM 的时候怎...

AggressionStorm的博客 20万+

a1.sqlalchemy-研究

文章目录Sqlalchemy And Flask-Sqlalchemy使用sqlalchemy时,先搞明白:sqlalchemy使用事务操作(数据库会话也成为事务)`db.session.flush`详解sqlalchemy注意点1. `filter_by(name='haha').count()`的坑2.`pagination_obj.items和pagination_obj.total`的弊端...

AggressionStorm的博客 20万+
上一篇: 03-Django REST framwork 板块(03-认证、权限、节流)
下一篇: 02-Django REST framwork 板块(02-CBV、FBV详解)
AggressionStorm
博客等级 码龄9年 6粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值