首页 > 其他分享 >drf-day01

drf-day01

时间:2023-05-15 17:23:31浏览次数:41  
标签:请求 day01 接口 file 格式 path os drf

目录

一.web应用模式

前后端混合开发

-后端人员,既要写后端,django,又要写前端

image

前后端分离

-后端人员,只写后端,写一个个的API接口
-前端人员,只写前端
-最后项目写完,前后端联调

image

二、API接口

为了在团队内部形成共识、防止个人习惯差异引起的混乱,我们需要找到一种大家都觉得很好的接口实现规范,而且这种规范能够让后端写的接口,用途一目了然,减少双方之间的合作成本。

1.定义

通过网络,规定了前后台信息交互规则的url链接,也就是前后台信息交互的媒介,它称之为API接口
-前端:向后端发送请求,获取数据 127.0.0.1:8080/index --->返回数据
-后端:请求某个地址,返回固定的数据

2.四大特点

-1 url链接:127.0.0.1:8080/index
-2 有不同的请求方式:get、post、put、patch、delete
-3 请求参数   127.0.0.1:8080/books?name=红楼梦   放在请求体中
-4 响应结果: 一般是json格式,也可能是xml

三、 接口测试工具

写好的接口,要测试,可以使用浏览器来做,但是浏览器只能发送get请求,接口有其他请求方式

专门的接口测试工具(使用习惯,大致一样)

-postman,大部分公司用的,原来免费, 后来收费了,但是咱们只用免费部分就够了
-postwomen
-apifox

安装:

1.下载安装包,双击运行,就安装完成

2.可以注册,登录后使用
3.也可以跳过等, 直接使用

post请求,有多种编码格式

-urlencoded 格式    ---》默认格式  b'xx=xx&yy=yy'
-form-data 格式     ---》传文件格式,也可以带数据
    	----------------------------251971281264627087498320--  带数据,带文件
-json格式(用的最多)-->只能传数据   b'{"name":"lqz","age":18}'

ps:Django只会处理urlencoded 格式和form-data 格式,不会处理json格式

写三个接口

1.-接收urlencoded格式的请求,post接口,把接收到的数据,后端打印

image
image

2.-接口form-data,把文件保存到本地,数据打印出来

image

   import os
    from django.conf import settings
    if request.method == 'POST':
        # 接收文件对象
        file_obj = request.FILES.get('file')
        print(file_obj)

        # 拼接文件上传的路径
        path_file = os.path.join(settings.BASE_DIR, 'static', 'file')
        if not os.path.exists(path_file):
            os.mkdir(path_file)

        # 拼接文件的文件名
        filename = os.path.join(path_file, file_obj.name)

        with open(filename, 'wb') as f:
            for line in file_obj:
                f.write(line)


        file_path = os.path.join(settings.BASE_DIR, 'static', 'file', file_obj.name)
        # 打印文件数据
        with open(file_path, 'rb') as f:
            print(f.readline())

3-接收json形式,把数据打印出来

	-json.loads(request.body)

image

image

image

标签:请求,day01,接口,file,格式,path,os,drf
From: https://www.cnblogs.com/yuezongke/p/17402519.html

相关文章

  • 算法训练DAY01
    算法训练DAY01|704.二分查找、27.移除元素704.二分查找大体思路:处理数组为空的特殊情况初始化left,right,使用[l,r]形式的二分法确定while条件,处理二分实现细节:(l+r)//2python中//运算符向下取整处理while中的分支时,最好用continue跳出循环,少用ifelse27.移除元素......
  • drf知识点
    目录drf知识点1、web应用模式、API接口、接口测试工具postman、restful规范2、序列化与反序列化的概念、基于django原生编写5个接口、drf介绍和快速使用、cbv源码分析3、APIView执行流程(源码分析)、Request对象源码分析4、序列化器的序列化与反序列化5、断言、drf之请求与......
  • Day01 Markdown学习
    Markdown学习标题三级标题四级标题字体两边加星号变粗体两边一个星号变斜体一个星两个星斜体加粗两边两个波浪号删除线引用一个>符号出引用效果分割线三个减号三个星号图片![截图](C:\Users\GE62\Pictures\CameraRoll\002.jpg)超链接点击跳转到狂神说JAVA......
  • drf重写authenticate方法实现多条件登录(源码分析)
    drf重写authenticate方法实现多条件登录(源码分析)1.思路JWT拓展的登录视图中,在接受到用户名和密码时,调用的也是Django的认证系统中提供的authenticate()来检查用户名与密码是否正确.我们可以通过修改Django系统的认证后端来支持登录账号既可以是用户名也可以是手机号修......
  • django内置序列化组件(drf前身)
    目录一、django内置序列化组件(drf前身)一、django内置序列化组件(drf前身)一、django内置序列化组件(drf前身)这里的内置序列化组件,其实就是实现将后端数据,存放到字典中或是存放到列表中有序输出。这里是我们用JsonResponse模块自己实现的代码'''前后端分离的项目视图函数......
  • Django内置序列化组件(drf前身)和批量操作数据加上分页器
    目录一、django内置序列化组件(drf前身)这里的内置序列化组件,其实就是实现将后端数据,存放到字典中或是存放到列表中有序输出。方式一这里是我们用JsonResponse模块自己实现的代码'''前后端分离的项目视图函数只需要返回json格式的数据即可'''fromapp01importmodelsfr......
  • Day01
    Markdown学习标题三级标题四级标题 字体Hellow,World!Hellow,World!Hellow,World!Hellow,World!引用选择狂神说java,走向人生巅峰 分割线   图片  超链接点击跳转到狂神博客  列表AC ABC表格名字性别生日张......
  • DRF之过滤与排序
    过滤组件基于django内置的过滤组from django_filters.rest_framework import DjangoFilterBackendfromrest_framework.genericsimportListAPIView需继承genericsclassBooksGenericListApiView(ListAPIView):authentication_classes=[]queryset=models.Bo......
  • 【DRF】0. 前后端分离
    前后端不分离的工作流程:提出需求前端页面开发翻译成模板前后端对接集成遇到问题前端返工后端返工二次集成集成成功交付上线前后端分离提出需求约定接口规范数据格式前后端并行开发前后端对接前端调试效果集成成功交付上线定义规范后端自测前端mock数据......
  • 【DRF】1. DRF配置
    INSTALLED_APPS中增加"rest_framework",'rest_framework.authtoken',settings.py中REST_FRAMEWORK={'DEFAULT_PAGINATION_CLASS':'rest_framework.pagination.Page'PAGE_SIZE':50,'DATETIME_FORMAT�......