10 2019 档案
摘要:cookie实现简单登录 request.path_info 获取url后缀,http://127.0.0.1:8000/home/?zx=22,获取/home/ request.get_full_path() 获取后缀包括get请求的参数 /home/?zx=22 session和cookie实现
阅读全文
摘要:Django 中间件 什么是中间件 简单来说就是到达路由前必须经过的过程 中间件常用的作用 1.反爬(用户访问频率限制) 2.用户是否是合法用户 3.用户登录校验 4.各种涉及到网站全局的功能 Django中间件 Django默认配置了7个中间件,当然我们还可以自己定制相关的中间件 Django默认
阅读全文
摘要:Django cookie session 为什么会出现Cookie, Session cookie和session都是为了弥补http协议的无状态特性,对server端来说无法知道两次http请求是否来自同一个用户,利用cookie和session就可以让用户只登录一次,server就知道某个请求
阅读全文
摘要:分页 view层 模板层 自定义分页器 form表单校验组件 由于校验的安全性,前端可以没有校验,但是后端必须校验 自定义组件 前端表单可以自己写,也可以使用组件提供的 obj为自己定义的组件对象 但是这样渲染,会默认加上前端的校验,但是加在前端是不安全的,所以不采用 要在form表单上加上nova
阅读全文
摘要:AJAX 什么是AJAX? AJAX不是JavaScript的规范,它的缩写:Asynchronous JavaScript and XML,意思就是用JavaScript执行异步网络请求。提交任务之后,不原地等待,直接执行下一行代码,任务的返回通过回调机制。 局部刷新,不整体刷新,而是界面莫个地方
阅读全文
摘要:AJAX 什么是AJAX? AJAX不是JavaScript的规范,它的缩写:Asynchronous JavaScript and XML,意思就是用JavaScript执行异步网络请求。提交任务之后,不原地等待,直接执行下一行代码,任务的返回通过回调机制。 局部刷新,不整体刷新,而是界面莫个地方
阅读全文
摘要:字符索引优化 引入 假如有一个系统,使用的是邮箱作为账号的,每次登陆都要查询邮箱,如果不给邮箱加索引的话,每一次查询都是全表查询,所以给邮箱加索引是必需的,但是如果给邮箱加普通索引的话又感觉浪费空间 前缀索引 添加索引 索引结构 搜索区别 使用index1 1.直接搜索index1的索引树,找到zh
阅读全文
摘要:MySQL多索引查询选择 MySQL选择索引 引入 我们知道我们一个表里面可以有多个索引的,那么我们查询数据的时候不指定索引,MySQL就会帮我们自动选择。既然是MySQL程序帮我们自动选择的那么会不会有问题的呢?答案是会的,MySQL的优化器也有bug,有时候选择的索引并不是最优的。 案例1 假如
阅读全文
摘要:唯一索引和普通索引 查询数据过程的区别 SQL 普通索引 查询k索引树这个数据,当查到(3,300)的时候,还会继续查找下一个记录,如果下一个记录k不是3了就结束了 唯一索引 区别就在于查到(3,300)就直接结束,因为是唯一索引,它知道肯定是唯一的 结论 如果记录是唯一的,那么普通索引和唯一索引的
阅读全文
摘要:MySQL锁 三类锁 全局锁 表级锁 行锁 全局锁 全局锁就是对整个数据库加锁 Flush tables with lock(FTWRL)全局读锁 使用场景,给全库做逻辑备份 如果你在主库上备份,那么在备份期间都不能执行更新,业务基本上就得停摆; 如果你在从库上备份,那么备份期间从库不能执行主库同步
阅读全文
摘要:Django如何启动源码分析 启动 我们启动Django是通过 的命令 解决 这句话就是执行manage.py文件,并在命令行发送一个runsever字符串 解析manage.py 测试sys.argv 发现两种启动获取的参数不一样,但是第二个参数一样 解析execute_from_command_
阅读全文
摘要:代码块 骏马金龙https://www.cnblogs.com/f ck need u/p/9925021.html https://www.cnblogs.com/jin xin/articles/9439483.html 代码块可以使得一段python代码作为一个单元、一个整体执行。 几种代码块
阅读全文
摘要:Django ORM ORM执行查看原生SQL的两种方法 1.在setting中配置 2.如果查询的结果是queryset对象可以.query查看命令 只要是queryset对象就可以无限制的点queryset对象的方法,queryset.filter().filter().filter() 搭建d
阅读全文
摘要:Setting可插拔 django暴露了一个可以给用户自定义配置的文件,优先使用用户配置的信息,而且必须要大写才有效 文件目录 start.py \_\_init\_\_.py 总结 关于两个配置文件,可以自己随意些,但是要注意大写 通过代码我们就可以更好的了解可插拔体现在哪里了,用户的配置文件可以
阅读全文
摘要:Django 视图层 三板斧 JsonResponse 底层调用的就是json模块 注意:JsonResponse默认只支持序列化字典 如果你想序列化其他类型(json能够支持的类型) 你需要将safe参数由默认的True改成False 序列化和反序列化 图片上传 前端 注意:提交方式必须是post
阅读全文
摘要:FBV与CBV 及CBV源码分析 FBV(Function Based View) 基于函数的视图 基于函数的视图,我们一直在用没啥好讲的,就是导入模块调用函数执行业务 CBV(Class Based View) 基于类的视图 路由 视图 CBV源码分析 首先我们的路由竟然是一个函数(),这样的话是
阅读全文
摘要:修改json源码支持datetime序列化 抛出异常 查看dumps源码发现cls是起作用的方法 最后在JSONEncoder找到抛出异常的位置,我们可以拦截datetime抛出的异常进行处理 通过源码的注释大概知道它允许通过重写方法的形式,改写default方法,自定义 def default(s
阅读全文
摘要:索引 索引的出现其实就是为了提高数据查询的效率,就像书的目录一样 InnoDB的索引模型 N叉树 以InnoDB的一个整数字段索引为例子,这个N差不多是1200。如果这棵树高4的化,就可以存储1200的3次方的值17亿了。考虑到根节点总是在内存中的,那么查一个数据最多只需要访问3次磁盘,而且其中第二
阅读全文
摘要:Django 路由层 路由的本质 本质就是通过URL告诉后端去调用哪一个逻辑函数 路由配置的参数 正则表达式:一个正则表达式字符串 views视图函数:一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串 参数:可选的要传递给视图函数的默认参数(字典形式) 别名:一个可选的name参数
阅读全文
摘要:django_ORM 注意不要轻易注释和删除models里面的字段信息 更改models注意要执行两句话 python manage.py makemigrations 生成迁移文件 python mamage.py migrate 真正把记录同步到数据库上面 多表关系的models建立 图书管理
阅读全文
摘要:Django 版本 安装 pip安装 验证安装 直接去代码中调用django的模块 或者命令行使用 创建项目 命令行 注意要在文件相对应的目录创建文件 注意 1.新创建的命令行新建的app需要自己去setting文件中注册 2.pycharm只会帮你注册第一个你用pycharm创建的应用 djang
阅读全文
摘要:磁盘 磁盘的组成 磁盘容量的计算:磁头数\ 磁道数\ 每道扇区数\ 每道扇区字节数 磁盘上各磁道长度不同,每圈磁道容量相同,内圈磁道的存储密度大于圈磁道的存储密度 磁盘MBR 1.磁盘的0磁道(最外面的那一圈)0柱面1扇区存储的是MBR(主引导记录)信息 2.MBR共512个字节,446字节的主引导
阅读全文
摘要:手撸web框架 简单的请求响应实现 要实现最简单的web框架,首先要对网络熟悉,首先HTTP协议是应用层的协议,只要我们给数据加上HTTP格式的响应报头,我们的数据就能基于socket进行实现了 web框架的特点 我们熟悉的web框架其实都很类似,基本上也就三大块 路由选择 业务处理 ORM 路由选
阅读全文
摘要:HUB集线器 物理层 工作原理: 机器1发送一个数据(广播发送),经过集线器hub,hub会转发到其他所有机器,其他机器接收到数据,如果数据是给自己的就收下,如果不是自己的就丢弃 集线器的作用?(sub) 1.信号放大 2.从一个接口收到数据,会复制N份,从所有的其他接口发送出去 3.半双工(同一时
阅读全文
摘要:队列 队列其实就和排队类似,先排队的人先买票,后排队的人排队伍的最后,而且不允许插队 其实队列和链表类似也是一种受限制的线性数据结构 总结来说是就是:先进者先出 队列操作 入队 enqueue(): 放一个数据到队列的尾部 出队 dequeue(): 从队列头部取出一个元素 队列的两种实现 顺序队列
阅读全文
摘要:HTTP与HTTPS HTTPS HTTP传输数据是明文的不安全 各种加密的不安全 明文=裸奔 对称加密:key唯一=明文 非对称加密:s c的数据不安全 对称加密+非对称加密:中间人问题,不安全 最终通过对称加密+非对称加密+CA认证 实现了安全的数据传输 原理如图 超文本传输协议](https:
阅读全文
摘要:Python的作用域 参考骏马金龙https://www.cnblogs.com/f ck need u/p/9925021.html blogaaa2 4大作用域 内置作用域dir(builtins) 全局作用域dir() 外部函数的本地作用域 嵌套函数内部的本地作用域 作用域分析 处于全局作用域
阅读全文
摘要:栈 什么是栈? 栈就类似放盘子,盘子一块一块叠起来,如果我们拿盘子的话只能拿到刚刚放下去的盘子。 总结来说就是,先进者后出,后进者先出,的一种数据结构 栈对比数组和链表 我们从栈的特点上,我们知道它的操作对比数组和链表,受到了很强的限制,增加和修改都只有单一的方式,没有数组和链表那样的灵活性。 栈的
阅读全文
摘要:链表 链表的底层实现 数组是连续的内存空间,所以内存是必需连续的,但是,链表它是通过指针将一组零散的内存块串联起来使用的。 指针 可以保存地址值(指针)的变量称为指针变量,因为指针变量中保存的是地址值 假如 硬盘最后就剩下100M的内存了,如果剩下的这100M是一块完整的内存,那么就可以声明一个10
阅读全文
摘要:数组 数组概念 数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。 线性表 线性表就是数据排成像一条线一样的结构。表就是数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向。数组、链表、队列、栈等也是线性表结构。 非线性表 二叉树、堆、图等
阅读全文
摘要:引入 BOM和DOM BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器进行“对话”。ECMAScript是javaScript的核心,但是如果想要在Web中使用javaScript,那么BOM就是真正的核心。 DOM (Document
阅读全文
摘要:案例,淘宝买东西 DNS(走的UDP) 域名的作用其实就是相对ip地址来说更好记忆和识别,DNS就是根据域名解析出ip 一次请求,DNS解析的过程 1.在浏览器输入一个域名,操作系统首先会检查自己的本地hosts文件是否存在这个域名的映射关系,如果有就解析完成 2.如果1没有对应的关系,然后就会去配
阅读全文
摘要:javaScript对象 自定义对象Object实例的两种方法 1.使用new操作符后跟上Object构造函数 2.使用对象字面量定义 var zx = {} 其实和new object()相同 对象属性方法使用 常用内置对象 Array: 数组对象 String: 字符串对象 Date:日期对象
阅读全文
摘要:javaScript简介 javaScript历史 1995年,Netscape公司是凭借Navigator浏览器成为当时第一代互联网公司。 网景公司希望在HTML界面上加一点动态效果,于是叫Brendan Erich这个员工设计一下,结果他只用了10天的时间。 为啥叫javaScript呢?因为当
阅读全文
摘要:时间复杂度公式推导 首先假设每一行的代码执行时间是相同的 推导过程 案例 那么这个函数执行花费的时间为2n+1 time 这个函数的执行花费时间为$2n^2$+n+1 time 总结 $T_(n)$表示代码执行的时间,n表示数据的规模,$f_(n)$表示每行代码执行次数的总和,O表示执行花费总时间和
阅读全文
摘要:Mysql事务 避免事务,会占用内存 事务是啥? 简而言之:事务 就是保护多条执行的sql语句,要么全部成功,要么全部失败 比如:转账就是一个事务:从一个用户将资金转出,再将资金转入到另一个用户,这两个操作看做一体 事务是在哪个层实现的? 事务是引擎层实现的,mysql是多引擎的系统,不是所有引擎都
阅读全文
摘要:background | 属性 | 属性值 | 描述 | | | | | | | | | | | | | | | | background color | 单词颜色表示法、rgb、十六进制 | 设置元素的背景颜色 | | | | | | | background image | url(‘http:
阅读全文
摘要:InnoDB引擎的redo log日志 解决什么问题? 我们每次更新数据如果都要直接写到硬盘存储的话,如果更新数据频繁的话,整个过程的Io成本和查找成本都会很高(比方说每次启动磁盘,平均的寻找数据时间将会很长) 怎么解决? 引入了redo log,redo就相当于一个缓存,它的关键点就是先写日志,在
阅读全文
摘要:MySQL分层 MySQL分层 主要分为:连接层,服务层,引擎层,存储层 客户端执行一条select命令的流程如下 连接器 功能: 负责跟客户端建立连接、获取权限、维持和管理连接 细节: 1.当用户登录成功后,用户就会拿到权限信息,即使管理员更改了你的权限,但是在本次连接中你的权限依然不变 2.连接
阅读全文