02 2020 档案
JS 严格模式
摘要:ECMAscript5 新增了严格运行模式。推出严格模式的目的如下: 消除 JavaScript 语法中不合理、不严谨的用法。 消除代码运行的一些安全隐患。 提高编译器效率,提升程序运行速度。 为未来新版本的规范化做好铺垫。 启用严格模式 在代码首部添加以下一行字符串,即可启用严格模式。 "use
阅读全文
JS Undefined 类型
摘要:JS Undefined 类型 undefined 是 Undefined 类型的唯一值,它表示未定义的值。当声明变量未赋值时,或者定义属性未设置值时,默认值都为 undefined。 示例1 undefined 派生自 null,null 和 undefined 都表示空缺的值,转化为布尔值时都是
阅读全文
Python logging 模块
摘要:Python Logging 模块 Python 中的 logging 模块可以让你跟踪代码运行时的事件,当程序崩溃时可以查看日志并且发现是什么引发了错误。Log 信息有内置的层级——调试(debugging)、信息(informational)、警告(warnings)、错误(error)和严重错
阅读全文
14.浏览器屏幕缩放bug修复
摘要:问题:浏览器缩放时,轮播图显示不全,滚动水平滚动条,发现图片缺失 解决:隐藏水平滚动条,页面都只提供垂直滚动条的需求 global.css
阅读全文
自定义配置 const
摘要:自定义常量配置文件:settings/const.py 加载自定义配置名称空间:settings/dev.py 在轮播图接口中应用:banner/views.py
阅读全文
xadmin 后台管理
摘要:xadmin后台管理 安装:luffy虚拟环境下 注册app:dev.py xadmin:需要自己的数据库模型类,完成数据库迁移 设置主路由替换掉admin:主urls.py 创建超级用户:大luffyapi路径终端 完成xadmin全局配置:新建home/adminx.py 在adminx.py中
阅读全文
后端主页模块设计
摘要:home模块 创建home模块 路由分发 主路由:luffyapi/urls.py 子路由:home/urls.py Banner数据表model设计 utils/model.py home/models.py 数据迁移:在大luffyapi路径下的终端 注册home模块:dev.py 设计Bann
阅读全文
前端主页
摘要:前端主页 图片准备 将提供的资料中的图片移植到项目的img文件夹下 页头组件:components/Header.vue 轮播图组件:components/Banner.vue 页脚组件:components/Footer.vue 主页组件:views/Home.vue
阅读全文
JavaScript 数字
摘要:数字(Number)也称为数值或数。 数值直接量 当数字直接出现在程序中时,被称为数值直接量。在 JavaScript 程序中,直接输入的任何数字都被视为数值直接量。 示例1 数值直接量可以细分为整型直接量和浮点型直接量。浮点数就是带有小数点的数值,而整数是不带小数点的数值。 整数一般都是 32 位
阅读全文
前台
摘要:前台 vue环境 创建项目 重构项目目录 文件修订:目录中非配置文件的多余文件可以移除 App.vue router/index.js Home.vue 全局配置:全局样式、配置文件 global.css settings.js main.js
阅读全文
user模块User表
摘要:user模块User表 创建user模块 创建User表对应的model:user/models.py 注册user模块,配置User表:dev.py 配置media media配置:dev.py media目录配置 主路由:luffyapi/urls.py 子路由:user/urls.py 数据库
阅读全文
数据库配置
摘要:数据库配置 创建数据库 为指定数据库配置指定账户 配置文件配置 Django 2.x 一些版本pymysql兼容问题 Django不采用2.0.7版本很可能出现以下问题,需要修改源代码
阅读全文
后台配置
摘要:环境变量 dev.py 在写项目直接导入utils文件夹也不''错误提示'' 封装logger dev.py utils/logging.py 封装项目异常处理 utils/exception.py settings.py 二次封装Response模块 utils/response.py 路由组件配
阅读全文
后台:Django项目创建
摘要:后台:Django项目创建 环境 创建项目 重构项目目录 配置开发环境
阅读全文
虚拟环境的搭建
摘要:虚拟环境的搭建 优点 windows 安装 配置虚拟环境管理器工作目录 MacOS、Linux 安装 工作文件 配置 使用 pycharm使用 新建项目 添加环境 使用环境
阅读全文
luffy 那点事
摘要:"1 虚拟环境创建" "2 后台:Django项目创建" "3 后台配置" "4 数据库配置" "5 user模块User表" "6 前台" "7 前台配置" "8 前端主页" "9 后端主页模块设计" "10 xadmin 后台管理" "11 前后台分离跨域交互" "12 自定义配置 const"
阅读全文
jwt 认证
摘要:[TOC] jwt 认证示意图 jwt 优势 1 没有数据库写操作,高效 2 服务器不存 token,低耗 3 签发检验都是算法,集群 jwt 认证算法:签发与检验 1. jwt 三段式:头 . 体 . 签名 (head.payload.sgin) 2. 头和体是可逆加密,让服务器可以反解除 use
阅读全文
频率组件
摘要:[TOC] 频率组件 重点 1. 如何自定义频率类 2. 频率检验规则 3. 自定义频率类时最常见的:短信接口一分钟只能发送一条 自定义频率类 1. 自定义类继承 SimplerRateThrottle 2. 设置类实现scope,值就是一个字符串,与settings中的DEFAULT_THROTT
阅读全文
权限组件
摘要:[TOC] 权限组件 重点 1 权限规则 2 如何自定义权限 3 我们一般在视图类中局部配置 drf 提供的权限类,但是也会自定义权限类完成局部配置 自定义权限类 1 自定义权限类,继承 BasePermission 类 2 必须重写 def has_permission(self, request
阅读全文
认证组件
摘要:[TOC] 认证组件 重点 1 认证规则 2 如何自定义认证类 3 我们一般不需要自定义认证类,在 settings 中全局配置第三方 jwt 认证组件提供的认证类即可 自定义认证类 1 自定义认证类,继承 BaseAuthentication 类 2 必须重写 authenticate(self,
阅读全文
注册接口
摘要:[TOC] 注册接口 项目初始化 settings.py 主 urls.py 子 urls.py models.py 注册接口 urls.py views.py serializers.py 用户中心接口 urls.py views.py serializer.py 图书资源接口 urls.py v
阅读全文
视图家族 & 路由组件
摘要:[TOC] 视图家族 & 路由组件 视图基类:APIView、GenericAPIView 视图工具类:mixins包下的五个类(六个方法) 工具视图类:generics包下的所有GenericAPIView的子类 视图集:viewsets包下的类 mixins包存放了视图工具类(不能单独使用,必须
阅读全文
JavaScript 字符串
摘要:JavaScript 字符串(String)就是由零个或多个 Unicode 字符组成的字符序列。零个字符表示空字符串。 字符串直接量 字符串必须包含在单引号或双引号中。字符串直接量有以下几个特点。 1) 如果字符串包含在双引号中,则字符串内可以包含单引号;反之,也可以在单引号中包含双引号。例如,定
阅读全文
JavaScript 基本数据类型
摘要:JavaScript 的数据类型分为两种: 简单的值(原始值):包含字符串、数字和布尔值,此外,还有两个特殊值——null(空值)和 undefined(为定义)。 复杂的数据结构基本数据类型,如表所示。 | 数据类型 | 说明 | | | | | null | 空值,表示非对象 | | undef
阅读全文
十大接口序列化 过渡写法
摘要:[TOC] 序列化类外键字段的覆盖 1. 在序列化类中自定义字段,名字与model类中属性名一致,就称之为覆盖操作 (覆盖的是属性的所有规则:extra_kwargs中指定的简易规则、model字段提供的默认规则、数据库唯一约束等哪些规则) 2. 外键覆盖字段用PrimaryKeyRelatedFi
阅读全文
子序列化,多表序列化
摘要:[TOC] 二次封装 Response 总结: 自定义继承 Response ,重写 init 方法,在内部格式化 data 数据库关系分析 总结: 断关联 有点:提升增删改操作效率,不允许查效率 缺点:增删改操作可能会导致脏数据,所以需要通过逻辑或是事务来保证 ORM 操作关系 总结: 1. 外键
阅读全文
序列化,反序列化
摘要:[TOC] ModelSerializer 模型序列化 ModelSerializers 默认帮我们实现了创建和更新方法,简化了我们的操作,当然如果你想自己写,可以重写它。其余使用方法跟普通的序列化一样。 内部类 DRF 响应类 Response 序列化基类控制的初始化参数 反序列化 views.p
阅读全文
Django REST framework 介绍
摘要:[TOC] Django REST framework 介绍 Django REST framework框架是一个用于构建 Web API 的强大而又灵活的工具. 通常简称为DRF框架 或 REST framework框架. 特点 提供了定义序列化器 serializer 的方法,可以快速根据 Dj
阅读全文
前后端分离
摘要:开发模式 在Web开发模式中,有两种开发模式 前后端不分离 前后端分离 前后端分离优势 在前后端不分离模式中,前端页面看到的效果都是由后端控制,由后端渲染页面或重定向,也就是后端需要控制前端的展示,前端与后端的耦合度很高。 这种应用模式比较适合纯网页应用,但是当后端对接App时,App可能并不需要后
阅读全文
JavaScript 环境污染
摘要:定义全局变量有 3 种方式: 在任何函数体外直接使用 var 语句声明。 var f = 'value1'; 直接添加属性到全局对象上。在 Web 浏览器中,全局作用域对象为 window。 window.f = 'value'; 直接使用未经声明的变量,以这种方式定义的全局变量被称为隐式的全局变量
阅读全文
APIView 的请求生命周期
摘要:[TOC] Django 配置 ORM配置 APIView 的请求生命周期 禁用csrf(√) = 请求解析模块(√) = 三大认证模块 = 自己代码处理请求 = 异常响应|正常响应渲染模块(√) 重写 as_view 方法 重写的 dispatch 方法 请求解析模块 python """ 1)当
阅读全文
JavaScript 变量
摘要:[TOC] JavaScript 变量 变量相当于容器,值相当于容器内装的东西 而变量名就是容器上贴着的标签,通过标签可以找到 变量,以便读、写它存储的值。 声明变量 在 JavaScript 中,声明变量使用 var 语句。 示例1 在一个 var 语句中,可以声明一个或多个变量,也可以为变量赋值
阅读全文
pip 安装源
摘要:pip 安装源 介绍 1、采用国内源,加速下载模块的速度 2、常用pip源: 豆瓣:https://pypi.douban.com/simple 阿里:https://mirrors.aliyun.com/pypi/simple 3、加速安装的命令: : pip install i https://
阅读全文
FBV CBV
摘要:[TOC] "CBV 和 FBV 介绍" 1. 路由绑定 2. 业务处理 fbv 每一个接口都会对应一个函数来响应请求 cbv 可以将一个资源的增删改查所有操放在一个类中管理,在内部再分方法逐一处理 (高内聚低耦合:六个接口和一个类有关,但都能在类内部处理) django 的类视图拥有 自动查找指定
阅读全文
Django rest framwork
摘要:1 前后端分离 2 一、RESTful API设计规范 二、RESTful 规范到底是什么? 三、接口的幂等性 3 Django REST framework 介绍 4 APIView 的请求生命周期 5 序列化,反序列化 6 子序列化,多表序列化 7 十大接口序列化过渡 8 视图家族 & 路由组件
阅读全文
Web API 接口
摘要:[TOC] 接口 接口概念:前台与后台进行信息交互的媒介 url链接 接口组成: url 链接 长得像返回数据的url链接 请求方式 get(查)、post(增)、put(整体改)、patch(局部改)、delete(删) 请求参数 拼接参数、数据包参数(urlencoded、form data、j
阅读全文
JavaScript 转义字符
摘要:转义字符是字符的一种间接表示方式。在特殊语境中,无法直接使用字符自身。例如,在字符串中包含说话内容。 "子曰:"学而不思则罔,思而不学则殆。"" 由于 JavaScript 已经赋予了双引号为字符串直接量的标识符,如果在字符串中包含双引号,就必须使用转义字符表示。 "子曰:\"学而不思则罔,思而不学
阅读全文
JavaScript 空白符(分隔符)
摘要:分隔符(空白符)就是各种不可见字符的集合,如空格(\u0020)、水平制表符(\u0009)、垂直制表符(\u000B)、换页符(\u000C)、不中断空白(\u00A0)、字节序标记(\uFEFF)、换行符(\u000A)、 回车符(\u000D)、行分隔符(\u2028)、段分隔符(\u2029
阅读全文
JavaScript 标识符,关键字和保留字
摘要:JavaScript 标识符,关键字和保留字 标识符 标识符(Identifier) 就是名称的专业术语。JavaScript 标识符包括变量名、函数名、参数名和属性名。 合法的标识符应该注意以下强制规则: 第一个字符必须是字母、下划线(_)或美元符号($)。 除了第一个字符外,其他位置可以使用 U
阅读全文
JavaScript 词法句法
摘要:JavaScript 中的几个重要概念 JavaScript 遵循 ECMA 262 规范,目前其最新版是 ECMAScript 2018,而获得所有主流浏览器完全支持的则是 ECMAScript 5。 以ECMAScript 5版本为基础,兼顾 ECMAScript 6 版本 中获得较大支持的新特
阅读全文
JavaScript 字符编码
摘要:JavaScript 字符编码 JavaScript 遵循 "Unicode" 字符编码规则。 "Unicode" 字符集中每个字符使用 2 个字节来表示,这意味着用户可以使用中文来命名 Java)Script 变量。 "Unicode" 是 Latin 1 字符集的超集,编码数目达到百万级;Lat
阅读全文
JavaScript 代码块
摘要:JavaScript 代码块 代码块就是使用 \ 如果把两块代码放在一起,就不会出现上述错误。合并代码如下: 注意: JavaScript 是按块执行的,但是不同块都属于同一个作用域(全局作用域),下面块中的代码可以访问上面块中的变量。 因此,如果把上面示例中两个代码块的顺序调换一下,就不会出现语法
阅读全文
Vue 前后台交互,插件
摘要:[TOC] Vuex 插件 Vuex 插件可以完成任意组件间信息交互 (移动端)了解 1. vuex是实现任何组件间的信息交互的,可以理解为全局的一个单例,为任何一个组件共享vue仓库里的数据 2. 在任何一个组件的逻辑里,都可以访问仓库 先在仓库里(store/index.js)定义变量,用来存储
阅读全文
JavaScript 文件延迟和异步加载
摘要:JavaScript 文件延迟和异步加载 —般情况下,在文档的 \ 标签中包含 JavaScript 脚本,或者导入的 JavaScript 文件。 这意味着必须等到全部 JavaScript 代码都被加载、解析和执行完以后,才能继续解析后面的 HTML 部分。 如果加载的 JavaScript 文
阅读全文
Vue 路由组件
摘要:[TOC] 组件数据局部化处理 1. 不管页面组件还是小组件,都可能会被多次复用 2. 复用组件的原因,其实就是复用组件的 页面结构、页面样式、页面逻辑 3. 但是页面上的数据需要区分(被复用的两个组件数据多少是有区别的),所以组件的数据要做局部化处理 4. 借助函数可以产生局部作用域的特点,为每一
阅读全文
编写第一个JavaScript程序
摘要:编写第一个程序 在 HTML 页面中嵌入 JavaScript 脚本需要使用 \ 新建 JavaScript 文件 JavaScript 程序不仅可以直接放在 HTML 文档中,也可以放在 JavaScript 文件中。 JavaScript 文件是文本文件,扩展名为 ,使用任何文本编辑器都可以编辑
阅读全文
JavaScript 介绍
摘要:JavaScript 介绍 ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者 Netscape公司,决定将JavaScript提交给国际标准化组织ECMA,希望这门语言能够成为国际标准。次年,ECMA发布262号标准文件(ECMA 262)的第一版,规
阅读全文
JavaScript
摘要:1 JavaScript 介绍 js 的原型和原型链 2 第一个 JavaScript 程序 3 JavaScript 文件延迟和异步加载 4 JavaScript 代码块 5 JavaScript 字符编码 6 JavaScript 词法句法 7 JavaScript 标识符,关键字和保留字 8
阅读全文
前台数据库
摘要:[TOC] 前台数据库 js 的 Array 操作 1. 尾增:arr.push(ele) 2. 首增:arr.unshift(ele) 3. 尾删:arr.pop() 4. 首删:arr.shift() 5. 增删改插:arr.splice(begin_index, count, args) 前台
阅读全文
Vue 项目开发
摘要:[TOC] Vue 项目开发 环境搭建 python:c语言编写,解释执行python语言的 node:c++语言编写,解释执行JavaScript语言的 npm类似于pip,是为node环境安装额外功能的 1 官网下载并安装node,附带npm "https://nodejs.org/zh cn/
阅读全文
js 对象补充
摘要:js 对象 普通对象与对象简写 js 没有字典类型,只有对象类型,对象可以完全替代字典来使用 js 中对象的属性名,都采用字符串类型,所以就可以省略字符串的引号标识 对象中属性值为函数时,称之为方法,方法建议简写: 方法名(){} 如果对象的属性值是一个变量,且变量名与属性名相同,还可以简写:{属性
阅读全文
Vue 实例成员
摘要:[TOC] 挂载点 el 1 一个挂载点只能控制一个页面结构(优先匹配到的结构) 2 挂载点挂载的页面标签严格建议用id属性进行匹配(一般习惯用app) 3 html标签与body标签不能作为挂载点(html和body标签不可以被替换,组件中详细介绍) 4 是否接受vue对象,是外界是否要只有vue
阅读全文
Vue 指令
摘要:[TOC] Vue 指令 Vue 文本指令 1 v 是vue指令,会被vue解析,v text="num"中的num是变量(指令是有限的,不可以自定义) 2 v text是原样输出渲染内容,渲染控制的标签自身内容会被替换掉(123会被num替换) 3 v html可以解析渲染html语法的内容 4)
阅读全文
Vue 介绍
摘要:[TOC] Vue 简介 渐进式 JavaScript 框架 渐进式:可以控制一个页面的一个标签,也可以控制一系列标签,也可以控制整个页面,甚至可以控制整个前台项目。你需要用它的什么组件就用什么组件,没有强主张 什么是 Vue? 可以独立完成前后端分离式 web 项目的 JavaScript 框架
阅读全文
Vue
摘要:"1 Vue 介绍" "2 Vue 指令" "3 Vue 实例成员" "4 前台数据库" "5 Vue 项目开发" "6 Vue 路由、组件" "7 Vue 插件,前后台交互,总结"
阅读全文
request-html
摘要:[TOC] 全面支持解析JavaScript! CSS 选择器 (jQuery风格, 感谢PyQuery). XPath 选择器, for the faint at heart. 自定义user agent (就像一个真正的web浏览器). 自动追踪重定向. 连接池与cookie持久化. 令人欣喜的
阅读全文
Python 中的经典类新式类
摘要:Python 中的经典类新式类 "要知道经典类和新式类的区别,首先要掌握类的继承" 类的继承的一个优点就是减少代码冗余 广度优先和深度优先,这主要是在多类继承的时候会使用到 经典类和新式类的主要区别就是 类的继承的方式 经典类遵循深度优先的规则,新式类遵循广度优先的规则。 至于什么是深度优先什么是广
阅读全文
asyncio
摘要:async实现协程,异步编程 我们都知道,现在的服务器开发对于IO调度的优先级控制权已经不再依靠系统,都希望采用协程的方式实现高效的并发任务,如js、lua等在异步协程方面都做的很强大。 python在3.4版本也加入了协程的概念,并在3.5确定了基本完善的语法和实现方式。同时3.6也对其进行了如解
阅读全文
高效爬虫
摘要:1 gevent 2 asyncio 3 Scrapy 4 scrapy 中间件 5 crapy 去重与 scrapy_redis 去重与 布隆过滤器 6 scrapy 分布式爬虫 7 scrapy 集成 selenium 8 布隆过滤器 9 httpx 异步请求库 10 async semphor
阅读全文
GitHub 使用
摘要:GitHub 1 注册 2 登陆 在登陆自己的GitHub账号之后,在网页右上角的小加号是用来创建自己的库的按钮,之后的步骤将网页翻译成中文之后,按提示进行创建自己的库即可。 为了实现,就需要安装一个软件,Git Bash。 git-scm.com 首先进入GitHub官网,下载适合自己电脑的版本
阅读全文
动态渲染反爬虫
摘要:[TOC] 动态渲染反爬虫 动态网页比静态网页更具有交互性,能给用户提供更好的体验 动态网页中常见的表现形式有 下拉刷新,点击切换和悬停显示等 由 JavaScript 改变 HTML "DOM" 导致页面内容发生变化的现象称为动态渲染 动态渲染的通用解决办法 如果每次遇到很麻烦的动态渲染页面,都需
阅读全文
Pyppeteer
摘要:[TOC] Pyppeteer 引言 Selenium 在被使用的时候有个麻烦事,就是环境的相关配置,得安装好相关浏览器,比如 Chrome、Firefox 等等,然后还要到官方网站去下载对应的驱动 最重要的还需要安装对应的 Python Selenium 库,确实是不是很方便,另外如果要做大规模部
阅读全文