厚街网站建设多少钱,网站自己怎么制作,wordpress安装后空白页,wordpress 套件【1.0】drf初识
【一】前后端开发模式
【1】前后端混合开发
【示例】flask混合、django混合【案例】bbs项目 模板#xff1a;dtl语法#xff08;django template language)模板语法 {{}} /{% %}后端渲染 qs对象–遍历循环到模板中–使用模板语法渲染渲染完成后 得到纯粹的…【1.0】drf初识
【一】前后端开发模式
【1】前后端混合开发
【示例】flask混合、django混合【案例】bbs项目 模板dtl语法django template language)模板语法 {{}} /{% %}后端渲染 qs对象–遍历循环到模板中–使用模板语法渲染渲染完成后 得到纯粹的html css js 不会再有模板语法了返回到客户端浏览器页面静态化
【2】前后端分离
后端做完只需要写接口api前端专门负责前端分开写完再联调
【二】api接口
【1】介绍
前后端分离后端只需写接口通过接口进行简单的数据交互api接口规定了前后端信息交互规则的url链接是前后端信息交互的媒介 含有信息的url链接127.0.0.1:8080/login/?namezhouage19127.0.0.1:8080/books/
【2】api接口含有的内容 url : url链接 请求方式:get post delete put… 请求参数json或xml格式的key-value类型 地址栏中例如login/?namezhouage18数据携带着数据 请求体中不同的编码格式 urlencoded,json,form-data … # urlencoded:keyvalue的形式 -login/?namezhouage16
# jsonjson字符串的形式 {name:zxq,age:20}
# form-data :文件混合数据响应结果json或xml格式的数据
【3】补充请求协议http
请求首行协议协议版本请求地址请求方式请求头key-value的形式请求体不同的编码格式
【三】接口测试工具
【1】软件介绍
postman 老牌收费apifox 国产免费postwoman开源
【2】postman
功能单一收费\【下载】 官网下载https://www.postman.com/选择版本(windows x64)下载好就是一个Postman-win64-Setup.exe直接打开就会的到桌面快捷方式直接使用
【3】apifoxpostmanswagger[接口文档]Mock[模拟测试数据]JMeter[压测工具]
【四】restful规范
【1】介绍
书写接口大家约定俗成遵守restful规范restful是一种定义web API接口的设计风格尤其适用于前后端分离的应用模式中
【2】十条规范 1数据的安全保障–url链接使用https - http
- https更安全2接口中带有api标识 - https://api.baidu.com
- https://www.baidu.com/api3接口中中带版本标识 - https://api.baidu.com/v1
- https://api.baidu.com/v24数据命名的时候尽量使用名词可用复数) - https://api.baidu.com/users
- https://api.baidu.com/books
- https://api.baidu.com/book5通过请求方式决定资源操作方式(增删查改—curd) - https://api.baidu.com/books - get请求获取所有书
- https://api.baidu.com/books - post请求新增一本书书
- https://api.baidu.com/books/1 - get请求获取主键为1的书
- https://api.baidu.com/books/1 - put请求整体修改主键为1的书
- https://api.baidu.com/books/1 - delete请求删除主键为1的书6请求地址中带过滤条件 https://api.example.com/v1/zoos?name大象7响应中带状态码 http响应状态码 1xx2xx3xx4xx5xx但是公司自己会定义状态码 例如 100错误 101…错误 一般一个软件都有固定的状态码出现错误可以直接搜状态码 8响应中带错误信息 -{code:101,msg:用户名密码错误}
-{code:100,msg:成功}9返回结果针对不同的操作有不同的返回规范 #get请求返回所有结果
GET /collection返回资源对象的列表数组 [{name:红楼梦,price:100},{name:红楼梦1price:90}]#get请求返回某个数据
GET /collection/resource返回单个资源对象{name:红楼梦,price:100}#post请求增加数据--返回增加的数据
POST /collection返回新生成的资源对象-{name:红楼梦,price:100}#put返回完整的资源对象
PUT /collection/resource返回完整的资源对象-{name:红楼梦,price:100}#delete删除数据 返回一个空文档
DELETE /collection/resource返回一个空文档10返回的数据中带有url链接
【3】比较好的接口返回格式 【示例】 {code: 0,msg: 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}...]
}【五】序列化和反序列化
【1】介绍
序列化将自己的数据—序列化成—别人想要的数据格式自己–别人反序列化将别人的数据格式—序列化成–自己想要的数据格式别人–自己
【2】接口中序列化
【介绍】接口是前后端数据交互的一个媒介一些框架会在前后端数据交互的时候帮助我们处理好数据的序列化和反序列化【步骤】django框架举例 序列化把我们后端的数据【字典、列表、对象】在django中获取到的数据默认是模型对象(queryset对象)转化成指定的格式【json格式字符串pickle二进制】提供给别人反序列化如前端js传过来的json数据对于python来说就是字符串需要反序列化成模型类对象
【六】drf安装和快速使用
【1】介绍
全称django rest framework是django框架上一个可以快速实现restful规范接口的快速开发框架
【2】安装 drf是安装在django之上的目前的二版本支持django4.0以上所以要版本契合 #先控制django的版本
pip3 install django4.2.14
#在django的基础上下载drf
pip3 install djangorestframework --upgrade【3】简单使用 要求利用django框架写出五个接口接口中带有相关的信息参数 urls中 #在总urls做路由分发models.py #定义模型表
from django.db import modelsclass Book(models.Model):name models.CharField(max_length32)price models.IntegerField()views中 #定义视图函数
from .models import Book
from .serializer import BookSerializer
from rest_framework.viewsets import ModelViewSetclass BookView(ModelViewSet):serializer_class BookSerializerqueryset Book.objects.all()serializer.py from rest_framework import serializers
from .models import Book
class BookSerializer(serializers.ModelSerializer):class Meta:modelBookfields__all__