Web应用模式、API接口、接口测试工具(Postman)的下载与使用
文章目录
一、Web应用模式
在开发Web应用中,有两种应用模式:
1.1、前后端不分离
后端人员,既要写后端,django,又要写前端
1.2、前后端分离
后端人员,只写后端,写一个个的API接口
前端人员,只写前端
最后项目写完,前后端联调
二、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—》返回数据
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})
- 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})
- 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})
- 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': '自能是数据'})
总结
以上就是今天要讲的内容,本文仅仅简单介绍了web开发模式、API接口是什么? 和 接口测试工具 postman的基本使用。