10 2019 档案
摘要:1.简介 APScheduler是一个Python 定时任务框架 ,提供了 基于日期 、 固定时间间隔 以及 crontab 类型的任务,并且可以 持久化任务 。基于这些功能,我们可以很方便的实现一个python定时任务系统。 2.安装 3.组成部分 触发器 (triggers):触发器包含调度逻辑
阅读全文
摘要:1.视图 视图的概念 视图的特性 视图的作用 应用场景 示例: 查询小飞上的所以课程相关信息 创建视图 view_student_course 之后查询 2.触发器 什么是触发器 触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。 触发器的特性: 1. 在 begin
阅读全文
摘要:定义 对于不同的机器环境而言,确切的单位时间是不同的,但是对于算法进行多少个基本操作(即花费多少时间单位)在规模数量级上却是相同的,由此可以忽略机器环境的影响而客观的反应算法的时间效率。 对于算法的时间复杂度效率,我们可以用“大O记法”来表示 。 “大O记法”:对于单调的整数函数f,如果存在一个
阅读全文
摘要:数据库的索引原理 0.什么是索引 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。更通俗的说,数据库索引好比是一本书前面的目录, 能加快数据库的查询速度 ,但是会降低写入速度。 show index from table_name
阅读全文
摘要:1.多个数据库 settings.py 迁移其他的数据库 2.读写分离 2.1手动指定 2.4自动选择 settings配置: 创建 router.py 一主多从 分库分表
阅读全文
摘要:缓存穿透: 缓存穿透,是指查询一个数据库一定不存在的数据。正常的使用缓存流程大致是,数据查询先进行缓存查询,如果key不存在或者key已经过期,再对数据库进行查询,并把查询到的对象,放进缓存。如果数据库查询对象为空,则不放进缓存。 代码流程 1. 参数传入对象主键ID 2. 根据key从缓存中获
阅读全文
摘要:HTML5 WebSocket WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。 WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者
阅读全文
摘要:``` if request.META.get('HTTP_X_FORWARDED_FOR'): ip = request.META.get("HTTP_X_FORWARDED_FOR") else: ip = request.META.get("REMOTE_ADDR") print("ip : ", ip) ```
阅读全文
摘要:redis主从复制 话不多说,直接看案例: 1. 环境准备, 运行3个redis数据库,达到 1主 2从的配置 2. 开启主从复制功能 edis cli info 查看数据库信息 redis cli info replication 在6380 和6381数据库上 ,配置主从信息,通过参数形式修改配
阅读全文
摘要:selenium 概念:基于浏览器自动化的一个模块,可以模拟浏览器行为 环境的安装:下载selenium模块 selenium和爬虫之间的关联是什么? 便捷的获取页面中动态加载的数据 requests模块进行数据爬取:可见非可得 selenium:可见即可得 实现模拟登录 基本操作: 谷歌浏览器驱动
阅读全文
摘要:增量式爬虫 概念:检测网站数据跟新的情况,爬取更新数据 核心:去重!!! 增量式爬虫 深度爬取类型的网站中需要对详情页的url进行记录和检测 记录:将爬取过的详情页的url进行记录保存 url存储到redis的set中 redis的sadd方法存取时,如果数据存在返回值为0,如果不存在返回值为1;
阅读全文
摘要:[TOC] 一.DRF之版本控制 1.为什么要有版本控制? API版本控制允许我们在不同的客户端之间更改行为(同一个接口的不同版本会返回不同的数据). DRF提供了许多不同的版本控制方案. 可能会有一些客户端因为某些原因不再维护了, 但是我们后端的接口还要不断的更新迭代, 这个时候通过版本控制返回不
阅读全文
摘要:1. djangorestframework使用 1. 下载安装 2. 注册 3. model 4. 路由 5. 视图 6. 序列化器类 7. 分页类 2.序列化器serializer serializer文件 view文件 data.json 需要数据结构 3. 序列化器钩子 自定义校验器 局部钩
阅读全文
摘要:[TOC] 一.DRF中的Request 在Django REST Framework中内置的Request类扩展了Django中的Request类, 实现了很多方便的功能 如请求数据解析和认证等. 比如, 区别于Django中的request: 从 中获取URL参数, 从 中去取某些情况下的POS
阅读全文
摘要:平行组件传值 通过平行组件传值可以实现任何情境下的传值,包括(父传子,子传父) 代码示例 html <!DOCTYPE html Title // 借助一个空的VUE对象 实现组件之间通信 let bus = new Vue(); //子组件A let A = { template: ` <div
阅读全文
摘要:父子组件 1.父组件往子组件传值(常用) html <!DOCTYPE html Title //子组件2 //第一步:生子2 挂子往App里挂, 不需要挂Vue里 let Vheader = {//对象 data(){ return {} }, //第一步(传值的 ): 子组件挂载父组件的属性pr
阅读全文
摘要:1全局组件 vue框架: https://www.vue js.com/?tab=all 组件树 solt 内置分发组件 应用见局部组件 2局部组件 2.1局部组件的使用:生子 挂子 用子 html <!DOCTYPE html Title {{msg}} //如果仅仅是实例化vue对象, 既有el
阅读全文
摘要:表单输入绑定 v model 数据双向绑定,只能应用在input /textare /select 示例:
阅读全文
摘要:1.es6的语法 let const 模板字符串 js tab键上面的反引号 ${变量名}来插值 let name = '未来'; let str = javascript class Person{ constructor(name){ this.name = name; } fav(){ } }
阅读全文
摘要:排序算法 1 冒泡排序 相邻元素两辆比较,大的往后放.第一次将数据遍历完成之后,最大值就出现在了最大的索引处.同理,即可得到一个排好序的数组. 过程图解: 代码实现 第一次遍历代码 完整代码 2 选择排序 选择排序改进了冒泡排序,每次遍历只做一次交换.例如:每次遍历都找到最大值,将最大值放到最后的位
阅读全文
摘要:二分查找 顺序查找 二分查找 一定是只可以被应用在有序列表中 二分查找则是从中间元素开始,而不是按顺序查找列表。 如果该元素是我们正在寻找的元素,我们就完成了查找。 如果它不是,我们可以使用列表的有序性质来消除剩余元素的一半。如果我们正在查找的元素大于中间元素,就可以消除中间元素以及比中间元素小的一
阅读全文
摘要:二叉树 python实现二叉树的结构: 根节点 左叶子节点 右叶子节点 子树 高度 二叉树的遍历: 广度优先(层次遍历) 深度优先: 前序(根左右):把根放到最前面 中序(左根右):把根放到中间 后序(左右根):把根放到最后 排序二叉树 插入节点的时候一定要遵从的原则: 比根节点小的节点同一插入在树
阅读全文
摘要:1.read 读取全部文件 输出: 2.readline 读取下一行 输出: 3.readlines 读取全部,并返回一个列表 输出:
阅读全文