Fork me on GitHub

09 2019 档案

摘要:一、HTTP概述 (一)什么是HTTP协议? 当在web页面输入url后,浏览器会向web服务器请求资源以显示web页面,而它们之间使用的就是HTTP协议(HyperText Transfer Protocol,超文本传输协议),浏览器就是基于HTTP协议进行文档传输的。 (二)HTTP协议的特点 阅读全文
posted @ 2019-09-30 21:12 iveBoy 阅读(495) 评论(0) 推荐(0) 编辑
摘要:一、TCP/IP协议族 1、什么是协议? 计算机与网络设备相互通信依赖于相同的方法,比如,双方通信基于何种语言等。而把通信所依赖的这一切方法统称为规则,而我们就把这种规则称为协议。 协议中存在各种各样的内容,包括电缆的规格、IP地址选定方法、通信双方建立的通信顺序以及web页面显示需要的处理步骤等 阅读全文
posted @ 2019-09-29 20:22 iveBoy 阅读(245) 评论(0) 推荐(0) 编辑
摘要:一、协程概述 1、什么是协程? 协程也被称为“微线程”,在一个线程中规定某个代码块的执行顺序。线程和进程的操作是由程序触发系统接口,最后的执行者是系统;协程的操作则是程序员。 2、为什么会有协程? 对于多线程应用,CPU通过切片的方式来切换线程间的执行,线程切换时需要耗时(保存状态,下次继续)。协程 阅读全文
posted @ 2019-09-29 08:03 iveBoy 阅读(314) 评论(0) 推荐(0) 编辑
摘要:一、线程概述 1、什么是线程? 线程依附进程而存在的,一个进程至少有一个线程,线程相当于微进程,多进程能实现并发,多线程也同样可以。线程是最小的执行单元(cpu执行的直接是线程)。 2、线程的特点 线程依附进程存在 同一个进程中的线程数据是互相共享的 一个进程可以开启多个线程 进程相当于容器,线程相 阅读全文
posted @ 2019-09-28 19:14 iveBoy 阅读(288) 评论(0) 推荐(0) 编辑
摘要:一、进程概述 (一)进程的基本概念 1、什么是进程? 在说进程前,需要了解一下操作系统cpu是如何来执行任务的。cpu在某一时刻只能执行一个任务,只是由于cpu执行任务的速度较快,来回切换不同的任务,才会给我们感觉像是同一时刻执行多个任务一样。而这里cpu执行的任务就是所说的进程,可以理解为cpu某 阅读全文
posted @ 2019-09-27 19:11 iveBoy 阅读(256) 评论(0) 推荐(0) 编辑
摘要:在python中通常有三种表示时间的方式: 时间戳(timestamp) 时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。 格式化的时间字符串(Format String) 结构化的时间(struct_t 阅读全文
posted @ 2019-09-25 22:05 iveBoy 阅读(227) 评论(0) 推荐(0) 编辑
摘要:一、构造方法 构造方法用于初始化对象,当类被实例化时,首先就会调用构造方法,构造方法是特殊的方法,所以需要方法名需要在两侧加上"__",完整的构造方法应该是__init__。 当创建类实例时,构造方法开始执行。 二、重写普通方法与构造方法 在类的继承中,一个类继承另一个类,会继承它所有的成员,但是, 阅读全文
posted @ 2019-09-25 22:03 iveBoy 阅读(252) 评论(0) 推荐(0) 编辑
摘要:一、安装ubuntu 1、点击创建新的虚拟机 2、选择对应的硬件兼容性 3、安装客户机操作系统 4、填写用户信息 5、处理器数量 6、分配内存 7、设置网络访问 8、选择I/O控制类型 9、选择磁盘类型 10、选择磁盘 11、指定磁盘容量 12、指定磁盘文件 13、点击完成 二、安装ssh服务 为方 阅读全文
posted @ 2019-09-25 21:50 iveBoy 阅读(229) 评论(0) 推荐(0) 编辑
摘要:一、vue基础 使用vue需在官网上先下载vue.js,网址:https://cn.vuejs.org/v2/guide/installation.html。然后: 在project中引入vue.js vue实例化 当进行实例化后,传入一个选项对象,其中以key-value存在的键值对,像el对象的 阅读全文
posted @ 2019-09-25 21:46 iveBoy 阅读(373) 评论(0) 推荐(0) 编辑
摘要:一、QuerySet中的切片 QuerySet是支持切片操作的,可以按需取出数据的个数: #所有数据 book_queryset = models.Book.objects.all() #取出索引为1-3的数据,实际索引范围1-2 book_queryset = models.Book.object 阅读全文
posted @ 2019-09-25 21:33 iveBoy 阅读(872) 评论(0) 推荐(0) 编辑
摘要:一、Form插件的使用 (一)widget参数 在date字段中使用了插件,参数是widget,可以从源码角度来看看是为什么? class DateField(BaseTemporalField): widget = DateInput input_formats = formats.get_for 阅读全文
posted @ 2019-09-23 22:17 iveBoy 阅读(585) 评论(0) 推荐(0) 编辑
摘要:一、model字段对象 (一)_meta _meta是django.db.models.options.Options的实例,获取字段对象可通过模型类来进行获取,而_meta可提供如下功能: 获取模型的所有字段实例 通过名称获取模型的单个字段实例 1、获取模型的单个字段实例 2、获取模型的所有字段实 阅读全文
posted @ 2019-09-23 14:19 iveBoy 阅读(663) 评论(0) 推荐(0) 编辑
摘要:一、ModelForm的使用 顾名思义,ModelForm就是将Model与Form进行绑定,Form有自动生成表单的作用,但是每一个forms字段需要自己手动填写,而Model就是数据库表包含了所有的数据字段。所以ModelForm有着以下功能: Form所有的功能 将Model字段自动转换成fo 阅读全文
posted @ 2019-09-22 17:31 iveBoy 阅读(3848) 评论(0) 推荐(1) 编辑
摘要:safe除了将html生成安全的文本外,还有将整型转为字符串: 阅读全文
posted @ 2019-09-20 16:07 iveBoy 阅读(2051) 评论(0) 推荐(0) 编辑
摘要:一、Form基础 (一)Form的作用 Django的Form主要有以下几大作用: 生成HTML标签 验证用户数据(显示错误信息) Form提交保留上次提交数据 初始化页面显示数据 (二)实例 一般网站都有登录页面,如果使用Form应该怎么做呢? 1、创建LoginForm类 2、views中进行实 阅读全文
posted @ 2019-09-20 14:47 iveBoy 阅读(934) 评论(0) 推荐(0) 编辑
摘要:一、模板渲染的原理 (一)使用 模板渲染首先有一个模板对象Template,然后有一个上下文对象Context,通过render方法进行渲染,最后返回字符串,render方法的本质还是调用了HttpResponse方法。 (二)源码的简单流程 1、Engine Engine类位于django.tem 阅读全文
posted @ 2019-09-19 10:32 iveBoy 阅读(3242) 评论(0) 推荐(0) 编辑
摘要:一、创建Django项目 1、创建project 2、生成project的目录 3、其它常使用的命令 二、项目配置 1、配置模板路径 2、配置静态文件资源 值得注意的是在创建项目时,settings中自动生成STATIC_URL = '/static/',它是引用名,代替STATICFILES_DI 阅读全文
posted @ 2019-09-17 21:46 iveBoy 阅读(269) 评论(0) 推荐(0) 编辑
摘要:一、表结构设计 上述包含书籍、出版社、作者模型表,其中出版社和书籍是一对多的关系,作者和书籍是多对多的关系。 二、表操作 (一)一对一操作 以Book表为例,对其进行增、删、改、查: 1、增加操作 create方式 save方式 2、删除操作 3、修改操作 注意:get()方法获取的内容更新的是所有 阅读全文
posted @ 2019-09-17 21:44 iveBoy 阅读(1950) 评论(0) 推荐(0) 编辑
摘要:一、ContentType概述 ContentType位于django.contrib.contenttypes.models.ContentType,ContentType表示和存储有关项目中安装的模型的信息的实例, 以及安装ContentType新模型时自动创建的新实例 。 ContentTyp 阅读全文
posted @ 2019-09-15 22:32 iveBoy 阅读(525) 评论(0) 推荐(0) 编辑
摘要:一、版本控制的使用 版本控制允许在不同的客户端之间更改行为,其实质就是后台根据客户端传递过来的版本信息做相应的动作,比如不同版本对应不同的序列化样式: (一)URLPathVersioning 1、在settings中配置DEFAULT_VERSIONING_CLASS DEFAULT_VERSIO 阅读全文
posted @ 2019-09-14 10:13 iveBoy 阅读(505) 评论(0) 推荐(0) 编辑
摘要:一、根据request获取参数 假设请求地址是: 那么后台的路由配置: 视图中通过request获取参数title: 二、通过args或kwargs获取参数 (一)kwargs获取值 请求的地址是: 但是后台的路由进行参数分组: 此时可以通过kwargs获取参数title: 这种情况的args是空的 阅读全文
posted @ 2019-09-13 21:56 iveBoy 阅读(3032) 评论(0) 推荐(0) 编辑
摘要:在学习rest framework的过程中,rest framework的request是经过重构的,但是如果调用重构对象request中的属性,如果属性不存在会调用原request对象中的属性,它使用的就是__getattr__方法。 在新构建的Request中存在__getattr__,假如调用 阅读全文
posted @ 2019-09-13 20:51 iveBoy 阅读(938) 评论(0) 推荐(0) 编辑
摘要:一、普通过滤 (一)get_queryset get_queryset方法是GenericAPIView提供的一个方法,旨在返回queryset数据集,而过滤就是要在这个方法返回数据集之前对数据进行筛选,然后返回筛选后的数据即可,那么也就是要求需要重写这个方法: 源码中的这个方法会从视图配置中获得q 阅读全文
posted @ 2019-09-13 11:36 iveBoy 阅读(2562) 评论(0) 推荐(0) 编辑
摘要:一、内置渲染器 REST框架包括许多内置的Renderer类,它们允许你使用各种媒体类型返回响应。还支持定义你自己的自定义渲染器。 内置渲染器的使用 1、全局设置 可以使用DEFAULT_RENDERER_CLASSES设置全局默认的渲染器集。例如,以下设置将使用JSON作为主要媒体类型: 2、局部 阅读全文
posted @ 2019-09-12 14:58 iveBoy 阅读(588) 评论(0) 推荐(0) 编辑
摘要:一、内置解析器 REST 框架包括一些内置的Parser类,允许你接受各种媒体类型的请求。还支持定义自己的自定义解析器,解析器用于解析客户端提交的数据。 内置解析器的使用 1、全局设置 可以使用 DEFAULT_PARSER_CLASSES 设置默认的全局解析器。例如,以下设置将只允许带有 JSON 阅读全文
posted @ 2019-09-12 12:29 iveBoy 阅读(536) 评论(0) 推荐(0) 编辑
摘要:一、内置分页API的使用 rest framework内置了三种API可供使用,分别为PageNumberPagination、LimitOffsetPagination以及CursorPagination,其中CursorPagination为加密分页,并且性能最优,因为它会记住上一次页码的位置, 阅读全文
posted @ 2019-09-11 21:11 iveBoy 阅读(395) 评论(0) 推荐(0) 编辑
摘要:一、路由组件的使用 1、使用实例 在视图中继承GenericViewSet类来完成功能时,需要自己对路由的写法有所改变,需要在as_view中传入actions字典参数: 但是rest framework中的路由组件完全可以自动生成对应的路由这样的路由。 这样就会生成下面的url形式: 2、参数 r 阅读全文
posted @ 2019-09-11 15:23 iveBoy 阅读(847) 评论(0) 推荐(0) 编辑
摘要:一、自定义限流 限流组件又叫做频率组件,用于控制客户端可以对API进行的请求频率,比如说1分钟访问3次,如果在1分钟内超过3次就对客户端进行限制。 1、自定义限流 假设现在对一个API访问,在30s内访问不能超过3次,应该如何实现? 在对应的视图中进行配置: 2、限流原理 在rest framewo 阅读全文
posted @ 2019-09-10 19:22 iveBoy 阅读(601) 评论(0) 推荐(0) 编辑
摘要:一、APIView APIView继承的是和django中CBV模式下的View类。View类中的dispatch方法通过反射对不同的请求方法执行不同的函数。而APIView不仅拥有这个特性,而且重要的是是对request进行了重构,以及添加了很多组件,如认证组件、权限组件以及频率组件等。这些都是在 阅读全文
posted @ 2019-09-09 19:55 iveBoy 阅读(289) 评论(0) 推荐(0) 编辑
摘要:一、权限组件的使用 1、自定义权限 要实现自定义权限,需要重写BasePermission并实现以下方法中的一个或两个 .has_permission(self, request, view) .has_object_permission(self, request, view, obj) 如果请求 阅读全文
posted @ 2019-09-09 12:12 iveBoy 阅读(898) 评论(0) 推荐(0) 编辑
摘要:一、序列化 1、序列化准备 以下列表进行举例说明: 2、Serializer 自定制显示方式 Serializer相当于django中Form,必须自己自定义字段,以Book表为例: Book表中既有ForeignKey字段又有ManyToMany字段,对于ForeignKey字段的显示可以使用so 阅读全文
posted @ 2019-09-08 14:30 iveBoy 阅读(667) 评论(0) 推荐(0) 编辑
摘要:在项目开发中,往往需要使用到一些公共组件,比如,弹出消息、面包屑或者其它的组件,为了使用方便,将其以插件的形式融入到vue中,以面包屑插件为例: 1、创建公共组件MyBread.vue 2、在main.js中全局注册到vue中 3、使用 在需要的组件中可以直接使用,注意需要父子传值 阅读全文
posted @ 2019-09-05 19:16 iveBoy 阅读(19150) 评论(0) 推荐(0) 编辑
摘要:ref 被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的 refsDOM使DOM1refDOMhtmlrefthis.refs.标签的ref的名来获取 阅读全文
posted @ 2019-09-05 18:40 iveBoy 阅读(525) 评论(0) 推荐(0) 编辑
摘要:一、module的作用 由于使用单一状态树,应用的所有状态会集中到一个比较大的对象。当应用变得非常复杂时,store 对象就有可能变得相当臃肿。 为了解决以上问题,Vuex 允许我们将 store 分割成模块(module)。每个模块拥有自己的 state、mutation、action、gette 阅读全文
posted @ 2019-09-04 23:13 iveBoy 阅读(10025) 评论(0) 推荐(0) 编辑
摘要:一、使用方式 全局前置守卫用于在路由配置生效之前进行一些动作,可以使用 router.beforeEach 注册一个全局前置守卫: 参数: to: Route: 即将要进入的目标 路由对象 from: Route: 当前导航正要离开的路由 next: Function: 一定要调用该方法来 reso 阅读全文
posted @ 2019-09-04 18:32 iveBoy 阅读(7643) 评论(0) 推荐(0) 编辑
摘要:一、eval函数的定义 1、定义 eval() 函数用来执行一个字符串表达式,并返回表达式的值。 2、语法 eval(expression[, globals[, locals]]) expression : 表达式。 globals : 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。 阅读全文
posted @ 2019-09-04 18:32 iveBoy 阅读(13932) 评论(0) 推荐(0) 编辑
摘要:一、获取菜单与权限信息 通过后端API的接口获取信息: 1、获取菜单信息 (1)在登录过后进入主页时进行菜单信息信息的获取,在home组件created的方法中发送ajax请求。 (2)在home.js文件中: (3)获取的菜单数据形式: { { 'title': '用户管理', 'icon': ' 阅读全文
posted @ 2019-09-04 18:31 iveBoy 阅读(5352) 评论(0) 推荐(0) 编辑
摘要:一、动态菜单API的生成 1、API 2、MenuModelView 在restframework框架的认证组件中通过 authentication_classes = [AuthToken]进行认证,获得user,从而传入user,从而初始化菜单数据,然后根据数据库中的positionid可以进行 阅读全文
posted @ 2019-09-04 18:31 iveBoy 阅读(2117) 评论(0) 推荐(0) 编辑
摘要:一、表结构设计 二、表结构说明 上述有5张表,但因为用户表与角色表、角色表与权限表都是多对多的关系,故而会多生成2张表。 1、菜单表(Menu) 是主页右侧的菜单,它的下面是所有的get方式的权限url 2、请求方式表(Action) 是所有请求url的请求方式,在页面上的表现就是增加、修改、删除这 阅读全文
posted @ 2019-09-04 18:30 iveBoy 阅读(2992) 评论(0) 推荐(0) 编辑
摘要:一、初始化菜单、权限信息 在进行用户名和密码验证成功后就进行权限和菜单的初始化,生成该用户的菜单和权限数据。 二、生成菜单、权限信息 通过将用户名传入Initpermission类中进行处理 from rbac import models from django.conf import settin 阅读全文
posted @ 2019-09-04 18:30 iveBoy 阅读(2790) 评论(0) 推荐(0) 编辑
摘要:一、axios的封装 在vue中为了使用axios使用方便,不需要每一个模块进行导入,就需要对其进行封装: 1、新建http.js模块 2、在main.js中导入 此时vue实例中已经有$http方法了 3、在需要的地方进行调用 二、拦截器的使用 拦截器是在发送请求之前做一些动作,比如将将token 阅读全文
posted @ 2019-09-02 18:48 iveBoy 阅读(5582) 评论(0) 推荐(0) 编辑
摘要:一般情况下,进入到web网站主页都需要进行token或者其它验证,不能在没有登录的情况下可以查看主页的内容,在用户输入用户名密码后,进行校验成功,后台会返回一个token,用于用于下次访问主页或其它页面进行用户认证,一旦认证成功就可以访问了。 1、用户获取token 用户向后台API发送用户名和密码 阅读全文
posted @ 2019-09-02 18:27 iveBoy 阅读(1704) 评论(0) 推荐(0) 编辑
摘要:一、箭头函数(Arrow Functions) 1、定义 a => a+b;//也可以写成 (a,b) => a+b 这相当于: function (a,b) { return a+b }; 箭头函数实际上就是用‘=>’代替了关键字function。 2、this指向问题 箭头函数与普通函数this 阅读全文
posted @ 2019-09-02 17:59 iveBoy 阅读(363) 评论(0) 推荐(0) 编辑

TOP
点击右上角即可分享
微信分享提示