DRF~day01 之 Web应用模式、API接口、接口测试工具(Postman)的下载与使用

Web应用模式、API接口、接口测试工具(Postman)的下载与使用



一、Web应用模式

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

1.1、前后端不分离

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

image

1.2、前后端分离

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

image

二、API接口

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

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



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



-前后端交互的媒介
 	-url地址
     -请求方法:get,post
     -请求参数:post请求参数,有多种编码格式
     	-urlencoded :form表单默认编码格式,ajax发送请求默认编码格式
         -form-data格式:传文件和数据
         -json格式:只能传数据
     -返回结果

三、接口测试工具(Postman)的下载与使用

3.1、接口测试工具 :Postman的下载

  • Postman是一款接口调试工具,是一款免费的可视化软件,同时支持各种操作系统平台,是测试接口的首选工具。
  • Postman可以直接从官网:https://www.getpostman.com/downloads/ 下载获得,下载安装包,双击运行,就安装完成。
  • 界面详情及使用介绍

安装—》运行—》新建tab页面—》填入地址,填入请求方式,请求头,请求体。。。—》点send—》返回数据

image

3.2、配合django使用

首写在django中两种请求方式get和post
django版本是2.x版本

  • get请求
# 路由层
from django.contrib import admin
from django.urls import path
from app01 import views
urlpatterns = [
    path('admin/', admin.site.urls),
    # get请求
    path('jeko/', views.jeko),
]

# 视图层
# get请求
# 浏览器只能发送get请求
def jeko(request):
    res = request.GET.get('name')
    print(123, 'jeko')
    print(res)
    return JsonResponse({'username': 'kevin', 'age': 19})

image

  • post请求
post请求,有多种编码格式
urlencoded 格式    ---》默认格式  b'xx=xx&yy=yy'
form-data 格式     ---》传文件格式,也可以带数据
----------------------------251971281264627087498320--  带数据,带文件
json格式(用的最多)-->只能传数据   b'{"name":"lqz","age":18}'
  • post请求 之 urlencoded 格式
# 路由层

from django.contrib import admin
from django.urls import path
from app01 import views
urlpatterns = [
    path('admin/', admin.site.urls),
    # get请求
    path('jeko/', views.jeko),
    # post 请求接收(-urlencoded 格式)
    # postman 里面 如果'abc/'有斜杠,那么postman里面填写路由地址时要在最后面加上斜杠
    path('abc/', views.abc),
]


# 视图层
# post请求 接收(-urlencoded 格式)

def abc(request):
    print(abc)
    print(request.POST)  # <QueryDict: {'name': ['jack']}>
    res = request.POST.get('name')
    print(res)

    # 1、接收postman发送的post去请求体里面的数据
    # post请求传输数据
    # 请求体里面选择编码格式:(-urlencoded 格式)
    # 接收的格式是:二进制格式
    # 方式是: request.body
    print(request.body)  # b'name=jack&price=123456'  二进制
    return JsonResponse({'books': '三国演义', 'price': 99.98})

image
image

  • post请求 之 -form-data 格式
# 路由层

from django.contrib import admin
from django.urls import path
from app01 import views
urlpatterns = [
    path('admin/', admin.site.urls),
    # get请求
    path('jeko/', views.jeko),
    # post 请求接收(-urlencoded 格式)
    # postman 里面 如果'abc/'有斜杠,那么postman里面填写路由地址时要在最后面加上斜杠
    path('abc/', views.abc),
    # post 请求接收(-form-data 格式)
    path('kk/', views.kk),
]


# 视图层
# post请求 接收(-form-data 格式)
def kk(request):
    # 2、接收postman发送的post去请求体里面的数据
    # post请求传输文件(text)和文件夹(file)
    # 请求体里面选择编码格式:(-form-data 格式)
    # 数据
    ret = request.POST.get('zzz')
    print(ret)  # 获取的是文件名
    # 文件
    res = request.FILES.get('zzz')
    print(res)  # 获取的是文件  python-总结篇.md

    # 上传文件
    BASE_URL = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    print(BASE_URL)

    path_file = os.path.join(BASE_URL, 'abc')
    if not os.path.exists(path_file):
        os.mkdir(path_file)

    # 把写入的文件存到文件夹中
    with open('./abc/b.txt', 'wb') as f:
        for line in res:
            f.write(line)
    print(request.FILES)

    return JsonResponse({'books': '三国演义', 'price': 99.98})


image
image

  • post请求 之 接收json格式的数据
# 路由层
from django.contrib import admin
from django.urls import path
from app01 import views
urlpatterns = [
    path('admin/', admin.site.urls),
    # get请求
    path('jeko/', views.jeko),
    # post 请求接收(-urlencoded 格式)
    # postman 里面 如果'abc/'有斜杠,那么postman里面填写路由地址时要在最后面加上斜杠
    path('abc/', views.abc),
    # post 请求接收(-form-data 格式)
    path('kk/', views.kk),
    # json格式的请求
    path('jjkkk/', views.jjkkk),
]


# 视图层
# post请求接收json格式的数据

import json


def jjkkk(request):
    # ll = request.POST  # django中获取不到json格式的数据
    # print(ll)  # <QueryDict: {}>  是空对象
    # li = request.body  # json用request.body 获取
    # print(li)  # b'{"name": "kevin", "age":18}' 二进制格式
    # li = li.decode()  # 解码
    # print(li, type(li))  # {"name": "kevin", "age":18} <class 'str'>
    # ll = json.loads(li)
    # print(ll, type(ll))  # {'name': 'kevin', 'age': 18} <class 'dict'>

    a = request.body
    a = json.loads(a)
    for k, v in a.items():
        print(k, ':', v)

    return JsonResponse({'json': '返回json格式的数据', 'data': '自能是数据'})

image

image


总结

以上就是今天要讲的内容,本文仅仅简单介绍了web开发模式、API接口是什么? 和 接口测试工具 postman的基本使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值