初识接口
Web应用模式
前后端不分离:
所写的全部模板语法都是在后端进行渲染然后传给前端
前端只会收到字符串,html,css,js
后端人员前后端都要写
前后端分离:
后端只写后端,就是写API接口
前端只写前端
全部写完前后端联调
API接口
# 为了在团队内部形成共识、防止个人习惯差异引起的混乱,我们需要找到一种大家都觉得很好的接口实现规范,而且这种规范能够让后端写的接口,用途一目了然,减少双方之间的合作成本。
# 通过网络,规定了前后台信息交互规则的url链接,也就是前后台信息交互的媒介,它称之为API接口
前端发送请求到后端,从后端获取数据经过url如127.0.0.1/index返回数据到前端进行展示
后端请求某个地址,接收数据,进过一些逻辑处理,将处理好的数据返回给前端
# 四大特点
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等
post请求有多种编码格式:
urlencoded 格式也是默认格式,显示为:b'xx=xx&yy=yy'数据由text = request.POST.get('name')获取
form-data 格式主要用来传文件格式,也可以带数据,文件数据用file = request.FILES.get('file')获取,携带的数据由text = request.POST.get('name')获取
json格式(用的最多)-->只能传数据,显示为:b'{"name":"lqz","age":18}'用text = json.loads(request.body)获取数据
# json格式在python中用.POST是取不到的
具体实现
def get_urlencoded(request):
text = request.body
print(text)
return JsonResponse({"name": "张三"})
def get_form_data(request):
file = request.FILES.get('file')
text = request.POST.get('name')
print(text)
with open(f'{file}', 'wb') as f:
for line in file:
f.write(line)
return JsonResponse({"name": "张三"})
def get_json(request):
print(request.body)
text = json.loads(request.body)
print(text)
return JsonResponse({"name": "张三"})