IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> DRF框架 -> 正文阅读

[Python知识库]DRF框架

一.DRF:

1.? ? ? ? DRF框架是基于django框架衍生出来的一种独具风格一种形式
DRF与django的关系是父类与子类的关系,本质上与django没什么区别,只要是符合DRF风格的形式,都可以称为DRF

二.一般状态码:

????????

????????HTTP状态码:
?? ?????????一般常用的: 200 ?成功
?? ??? ??? ? ?301 永久重定向
?? ??? ??? ? ?302 临时重定向
?? ??? ??? ? ?400 请求报文存在语法错误
?? ??? ??? ? ?401 未经许可,需要http认证
?? ??? ??? ? ?403 无权限访问
?? ??? ??? ? ?404 无法找到请求路由
?? ??? ??? ? ?500 服务器发生错误

????????公司内部状态码:一般由公司内部文件决定,不唯一

三.rest_framework

????????? ? ?rest_framework是一个基于django的框架,可以看作是django的第三方库,库提供最基础功能就是方便开发restful接口。同时该第三方库,也是实现了django app的环境(或者说该库是以django app方式封装的一个package),可以作为app注册到django项目中,提供一些已经完成好的web应用功能(如登录API功能,提供基于token的身份认证及其model等,减少业务上重复开发业务逻辑)
? ? ?
? ? ?
? ? ?rest_framework的序列化类是非常重要。对于每一个字段类型,可以大致分为两类: readable_fields 和 writable_fields 即 可序列化和可反序列化,当然有些字段是可以序列化也可以反序列化的。每一个field字段,的readable与writable是根据

四.Restful设计方法

????????

????????restful是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制

REST与技术?关,代表的是?种软件架构?格(REST是Representational State Transfer的简
称,中?翻译为“表征状态转移”)

REST从资源的?度类审视整个?络,它将分布在?络中某个节点的资源通过URL进?标识
所有的数据,不过是通过?络获取的还是操作(增删改查)的数据,都是资源,将?切数据视为资
源是REST区别与其他架构?格的最本质属性
对于REST这种?向资源的架构?格,有?提出?种全新的结构理念,即:?向资源架构(ROA:
Resource Oriented Architecture.

五.restful

????????

1.尽量将API部署在专用域名之下

2.应该将API的版本号放入URL

3.资源只能有名词,不能动词,名词往往和数据库的表相对应

4.名词应该使用复数

5.使用HTTP动词表示对资源的操作

6.API应该提供参数,用来过滤信息

7.返回状态码和对应的提示信息

????????1. 100: 已经接受部分请求
????????2. 200: 请求成功
????????3. 201: 请求成功,已经新建了资源
????????4. 202: 请求成功,但是尚未处理,正在排队
????????5. 204: 请求成功,但是没有内容返回
????????6. 301: 永久重定向
????????7. 302: 临时重定向
????????8. 304: 没有修改
????????9. 400: 客户端请求错误
????????10. 401: 没有权限
????????11. 403: 没有认证,禁止请求
????????12. 404: 请求未找到
????????13. 500: 服务器内部错误

8.采用合适的错误处理

9.针对不同的操作返回不同的结果

10.返回结果中包含链接,指向其他页面

11.返回数据的格式,应该尽量使用json,避免其他格式

六:APIView的使用

1.导包

????????from rest_framework.views import APIView
????????from rest_framework.response import Response

2.获取参数:

????????get:
? ? ????????data = reqeust.query_params
????????post:
?? ?????????data = request.data

3.原生serializers

????????

class TeacherMSLV1(serializers.Serializer):
? ? id = serializers.IntegerField()
? ? name = serializers.CharField(max_length=20)
? ? classroom = serializers.CharField(max_length=50)


? ? def create(self, validated_data):
? ? ? ? return Teacher.objects.create(**validated_data)

? ? def update(self, instance, validated_data):
? ? ? ? instance.name = validated_data.get('name')
? ? ? ? instance.classroom = validated_data.get('classroom')
? ? ? ? instance.save()
? ? ? ? return instance

4.ModelSerializer.

????????ModelSerializer:
?? ??? ?继承serializers,比serializers更加方便快捷
?? ??? ?
?? ??? ?class UserMSL(ModelSerializer):
? ? ?? ??? ?class Meta:
? ? ? ?? ??? ??? ?model = User
? ? ? ? ?? ??? ?fields = '__all__'

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-09-23 11:25:08  更:2021-09-23 11:26:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 15:56:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码