element-ui(vue上的bootstrap)
eu:
书写特定的组件标签构建特点的结构样式
安装:
项目目录下的终端
cnpm i element-ui -S
main.js引入:
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);
使用:
官方API
https://element.eleme.cn/#/zh-CN/component/installation
web接口
什么叫接口:
通过url链接来进行前台访问后台,期间url需要传递必须和可选参数,最后来获得想要数据
接口的特点:
不返回页面,只返回数据
web接口规范(RESTful规范)
规范规定了两部分:
1、url链接应该怎么写
2、返回的数据格式如何写
1)通常使用https请求 #url数据更安全
2)链接会出现api字眼 #得到的是数据,不是页面
https://api.baidu.com
https://www.baidu.com/api
3)版本:不同版本需要标注 #接口迭代出现多版本共存
https://api.baidu.com/v1
https://api.baidu.com/v2
4)资源:请求的目标数据称之为资源,单资源采用资源名称名词,多资源采用资源名称名词的复数
https://api.baidu.com/v2/book | https://api.baidu.com/v2/books
https://api.baidu.com/book | https://api.baidu.com/books
5)请求方式:通过请求的方式决定操作方式
-- get:https://example.com/api/v1/books 获取所有
-- get:https://example.com/api/v1/book/1 获取id=1一本
-- post:https://example.com/api/v1/book 新增一本
-- put:https://example.com/api/v1/book/1 更新id=1的一本
-- patch:https://example.com/api/v1/book/1 更新id=1的一本
-- delete:https://example.com/api/v1/book/1 删除id=1的一本
6)资源过滤:通过接口传递参数来过滤资源 - limit|ordering|page
-- https://example.com/api/v1/books?limit=10 限制10条
7)数据状态码:返回数据要标准状态码,通过在数据中 {"status": 0} #注:数据状态码都是约定的(不是死的)
-- SUCCESS("0", "查询成功")
-- NODATA("1", "非正确,无数据,显示基本信息")
-- FEAILED("2", "查询失败")
8)错误信息:请求失败需要标注错误信息 - {"error": "错误信息"} => {"msg": "数据状态描述信息"}
9)数据(操作的资源返回结果):{"results": []} | {"data": []} | {"token": "*"}
-- get:返回资源列表 | 返回单一资源
-- post:返回单一新增资源
-- put:返回更新的资源
-- patch:返回更新的资源
-- delete:返回空文档
10) 子资源返回资源接口:返回的资源如果有子资源,返回子资源的链接地址,如查找书,书的封面图片就可以url表示
drf框架(Django REST Framework)
drf是django写满足restful规范接口的一个插件
安装:
>: pip3 install djangorestframework
配置:settings.py
REST_FRAMEWORK = {
# 自定义配置
}
drf源码解析
from rest_framework.views import APIView
from rest_framework.request import Request
from rest_framework.response import Response
from rest_framework.viewsets import ViewSet, ModelViewSet
from rest_framework.exceptions import APIException
from rest_framework.pagination import PageNumberPagination
# APIView类(重写原生view的方法)
# as_view():
#就干了一件事:禁用了csrf中间件的安全认证
# dispatch():
# 1) 二次封装request对象,将原wsgi的request对象保留至 _request 中
# 2) 将数据包中的数据解析到request.data,将url链接?后的数据解析到request.query_params
# 3) drf的三大认证
# 4) 二次处理响应对象response在返回
class User(APIView):
def get(self, request, *args, **kwargs):
data_dic = {
'status': 0,
'msg': 'get ok',
'results': {
}
}
return Response(data_dic)
def post(self, request, *args, **kwargs):
a = request.query_params.get('a')
x = request.data.get('x')
print(a, x)
data_dic = {
'status': 0,
'msg': 'post ok',
'results': {
}
}
return Response(data_dic)