drf

发布时间 2023-12-19 20:17:21作者: jntmwl

drf

1.前后端开发模式

​ 在开发Web应用中,有两种应用模式:

-前后端混合开发---》bbs 项目:render+ajax 
	-套路一:全栈开发(后端,前端)--》前端html+后端都是一个人写
    -套路二:前端人员  后端人员
    	-前端人员---》写空页面--->没有模板语法,只要html,css少量js
        -把页面给后端---》在里面加模板语法---》渲染
        -后端写接口
        
-前后端分离开发模式--》目前主流网站都是这种模式
	-web,桌面应用,移动端app,ios,小程序--》都可以使用同一套后端

在开发web应用中的两种模式

1.前后端不分离[客户端看到的内容和所有界面效果都是由服务端提供出来的。

image-20230514233525225

1

2.前后端分离【把前端的界面效果(html,css,js分离到另一个服务端,python服务端只需要返回数据即可)】

前端形成一个独立的网站,服务端构成一个独立的网站

image-20230514233552329

2.API接口

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

API概念

API:应用程序接口(API:Application Program Interface)

应用程序接口(API:application programming interface)是一组定义、程序及协议的集合,通过 API 接口实现计算机软件之间的相互通信。API 的一个主要功能是提供通用功能集。程序员通过使用 API 函数开发应用程序,从而可以避免编写无用程序,以减轻编程任务。

简单来说就是通过网络,规定了前后台信息交互规则的url链接,也就是前后台信息交互的媒介

    http://127.0.0.1/books/   
	点赞,点踩  就是API接口
  1. url:长得像返回数据的url链接

    1. https://api.map.baidu.com/place/v2/search
  2. 请求方式:get、post、put、patch、delete

    1. 采用get方式请求上方接口
  3. 请求参数:json或xml格式的key-value类型数据

    1. ak:6E823f587c95f0148c19993539b99295
    2. region:上海
    3. query:肯德基
    4. output:json
	-早些年 前后端交互使用xml格式----》ajax:异步JavaScript和XML
	-后来,随着json格式的出现,成了主流,直到现在
	-以后:一定会出现,比json更高效的交互格式,更安全
  1. 响应结果:json或xml格式的数据
    1. 上方请求参数的output参数值决定了响应数据的格式
    2. 数据
# xml格式
https://api.map.baidu.com/place/v2/search?ak=6E823f587c95f0148c19993539b99295&region=%E4%B8%8A%E6%B5%B7&query=%E8%82%AF%E5%BE%B7%E5%9F%BA&output=xml
'''中文会变成上面的样式,上下两个url是一样的意思'''
https://api.map.baidu.com/place/v2/search?ak=6E823f587c95f0148c19993539b99295&region=上海&query=肯德基&output=xml
#json格式
https://api.map.baidu.com/place/v2/search?ak=6E823f587c95f0148c19993539b99295&region=%E4%B8%8A%E6%B5%B7&query=%E8%82%AF%E5%BE%B7%E5%9F%BA&output=json

https://api.map.baidu.com/place/v2/search?ak=6E823f587c95f0148c19993539b99295&region=上海&query=肯德基&output=json

'''下方是返回的值'''
{
    "status":0,
  	"message":"ok",
    "results":[
        {
            "name":"肯德基(罗餐厅)",
            "location":{
                "lat":31.415354,
                "lng":121.357339
            },
            "address":"月罗路2380号",
            "province":"上海市",
            "city":"上海市",
            "area":"宝山区",
            "street_id":"339ed41ae1d6dc320a5cb37c",
            "telephone":"(021)56761006",
            "detail":1,
            "uid":"339ed41ae1d6dc320a5cb37c"
        }
      	...
		]
}

接口测试工具-Postman

Postman介绍

作为后端,写好了接口,我们自己要测试通过,再给别人用。

而后端测试人员需要测试API接口的时候,总不可能在浏览器里面试用吧,所以有了专业的接口测试工具Postman

	-浏览器只能发送get请求,不能自动发送post,delete请求
    -postman---》开源软件,只是谷歌浏览器的插件,越做好好,后来可以按装到操作系统上,再后来,收费
    -postwoman
    -很多很多其他的,不同公司用的也可能不一样,你只需要明白一个点,这个工具只是用来发送http请求

postaman下载与使用

1.官方下载

https://www.postman.com/downloads/?utm_source=postman-home----》Postman-win64-Setup.exe

2、安装时,双击即可,马上就会出现下图界面

3、使用讲解

打开一个新的测试页面后界面如下,返回数据的窗口在没有发送请求之前是空的

点击界面中间的Body,可以选择发送请求的方式,需要注意在使用form-data请求方式,即用form表单传输文件的时候,需要手动选择传输的数据类型。

这里是返回的结果

4.如何在浏览器中测试

我们需要在settings.py文件中注册rest_framework才能才浏览器中进行接口测试

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app01.apps.App01Config',
    'rest_framework',    #这句
]