自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 收藏
  • 关注

转载 React基础

1.脚手架npx create-react-app appName2.JSX是什么?JSX是一种JS语法扩展,可以在JS中编写类似于HTML的语法。需要明确的是,JSX本质是语法糖,我们写的并非是真正的HTML。3.React组件的存在形式有两种存在形式:函数组件 和 类组件。下面的例子中它们是等价的。function App() { retur...

2019-10-07 15:58:00 173

转载 Django REST Framework之权限组件

权限控制是如何实现的?一般来说,先有认证才有权限,也就是用户登录后才能判断其权限,未登录用户给他一个默认权限。Django接收到一个请求,首先经过权限的检查,如果通过检查,拥有访问的权限,则予以放行,进入到视图处理。如果没有通过检查,不会进入视图层,直接返回前端相应信息。使用权限控制权限控制类:class MyPermission(BasePermission):...

2019-09-29 21:13:00 246

转载 Django REST Framework之版本控制

何谓版本控制?为什么需要版本控制?一个项目在升级迭代的时候,不会立马抛弃旧的版本,甚至会出现多个版本共存同时维护的情况,因此需要版本控制。版本控制做了什么?版本控制做的事情很简单,在前后端分离的情况下,只是对请求做判断,判断这是哪个版本的请求,然后将版本信息封装入request对象中。自定义版本控制类1.settings.py配置REST_FRAMEWOR...

2019-09-29 14:21:00 347

转载 Django REST Framework之频率限制

开放平台的API接口调用需要限制其频率,以节约服务器资源和避免恶意的频繁调用使用自定义频率限制组件:utils/thottle.pyclass MyThrottle(BaseThrottle): def __init__(self): self.history = None def allow_request(self, re...

2019-09-28 17:07:00 557

转载 Django REST Framework之认证组件

什么是认证认证即需要知道是谁在访问服务器,需要有一个合法身份。认证的方式可以有很多种,例如session+cookie、token等,这里以token为例。如果请求中没有token,我们认为这是未登录状态,有些接口要求必须登录才能访问,如果未登录,我们可以一些处理(比如重定向登录页、返回错误信息等)。代码结构urls.pyfrom django.conf.urls i...

2019-09-28 16:33:00 182

转载 Django REST Framework序列化器

Django序列化和json模块的序列化从数据库中取出数据后,虽然不能直接将queryset和model对象以及datetime类型序列化,但都可以将其转化成可以序列化的类型,再序列化。功能需求都能做到,但是比较麻烦,每次需要手动实现。且取出的数据还需要进行转化,比如某些字段在存储时将汉字转化成数字,取出来后要将数字转化成汉字,这都是需要每次手动操作。Django REST ...

2019-09-28 16:24:00 145

转载 webpack4进阶配置

移动端CSS px自动转换成rem需要两步来实现:px2rem-loader 在构建阶段将px转换成remlib-flexible 页面渲染时动态计算根元素的font-size值(手机淘宝开源库)下载插件并配置:npm i px2rem-loader lib-flexiblemodule: { rules: [ { ...

2019-09-23 14:20:00 421

转载 Django REST Framework概述

什么是RESTREST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移”。这里说的表征性,就是指资源,通常我们称为资源状态转移。什么是资源?网络上所有的文本、图片、视频等实体,都是资源。除了实体,还可以是抽象概念,比如某人的手机号、住址等。找到某个资源,需要URL,统一资源定位符。...

2019-09-21 11:38:00 111

转载 webpack4配置基础

前言为什么要使用构建工具?1.转换ES6语法(很多老版本的浏览器不支持新语法) 2.转换JSX 3.CSS前缀补全/预处理器 4.压缩混淆(将代码逻辑尽可能地隐藏起来) 5.图片压缩 6.....为什么选择webpack?社区生态丰富配置灵活、插件化扩展官方更新迭代速度快基础概念默认的配置文件是weback.config.js,在pack...

2019-09-20 22:49:00 179

转载 TypeScript && React

环境搭建我们当然可以先用脚手架搭建React项目,然后手动配置成支持TypeScript的环境,虽然比较麻烦,但可以让你更清楚整个过程。这里比较麻烦,就不演示了,直接用命令配置好。npx create-react-app appname --typescript可以安装一些自己需要的库及其声明文件,例如react-router-dom、axios、ant Design...

2019-09-15 17:51:00 105

转载 使用Jest进行单元测试

Jest是Facebook推出的一款单元测试工具。安装npm install --save-dev jest ts-jest @types/jest在package.json中添加脚本:“test”: "jest"生成Jest配置文件(生成jest.config.js)npx ts-jest config:init使用先简单编写一个...

2019-09-14 23:13:00 473

转载 如何在TypeScript中使用JS类库

使用流程1.首先要清除类库是什么类型,不同的类库有不同的使用方式2.寻找声明文件JS类库一般有三类:全局类库、模块类库、UMD库。例如,jQuery是一种UMD库,既可以通过全局方式来引用,也可以模块化引用。声明文件当我们要使用一个类库时,需要ts声明文件,对外暴露API,有时候声明文件在源码中,大部分是单独提供额外安装。比如jQuery需要额外安装类型声明包。幸...

2019-09-14 21:31:00 1098

转载 TypeScript模块系统、命名空间、声明合并

命名空间命名空间能有效避免全局污染。在ES6引入模块之后,命名空间就较少被提及了。如果使用了全局的类库,命名空间仍是一个好的解决方案。namespace Shape{ const pi = Math.PI; // 使用export关键字导出,可以在全局空间内可见 export function circle(r: number) { re...

2019-09-14 19:28:00 629

转载 TypeScript高级类型

交叉类型将多个类型合并成一个类型,去两个类型的并集。与继承的区别是,继承可以有自己的属性,而交叉没有。interface DogInterface { run():void}interface CatInterface { jump():void}let pet: DogInterface & CatInterface = { // 看...

2019-09-14 16:33:00 189

转载 TypeScript类型检查机制

类型推断指不需要指定变量的类型,TS编译器可以根据某些规则自动推断出类型。什么时候会有类型推断?声明变量时没有指定类型函数默认参数函数返回值......let a; // 这时自动推断为any类型let b = 1; // 推断为number类型let c = []; // 推断为由any类型构成的数组let d = (x=1) =&g...

2019-09-14 15:12:00 347

转载 TypeScript泛型

泛型的概念指不预先确定的数据类型,具体的类型要在使用的时候才能确定。咋一听,是不是觉得JavaScript本身就是这样?这是由于理解有误。前面说“在使用的时候确定”,而非在程序执行的时候确定。泛型函数现在有个需求:一个被定义的函数原本输入字符串输出字符串,现在想让它同时支持输入输出字符串数组,如何实现?1.通过函数重载// 函数调用时依照声明的顺序进行匹配fu...

2019-09-14 11:11:00 93

转载 React-router总结

版本v3和v4有一些差距:https://blog.csdn.net/qq_35484341/article/details/80500237以下的总结,都是基于V4的官方文档:https://reacttraining.com/react-router/web/guides/quick-start核心组件和用法<BrowserRouter/> ...

2019-09-12 11:31:00 161

转载 TypeScript语法基础

什么是TypeScript?TypeScript是微软开发的一门编程语言,它是JavaScript的超集,即它基于JavaScript,拓展了JavaScript的语法,遵循ECMAScript规范(ES6/7/8+)。TypeScript = Type + Script(标准JS),它可以编译成纯JavaScript,已经存在的JavaScript也可以不加改动地在TS的环境上...

2019-09-06 20:00:00 1208

转载 React高阶组件 和 Render Props

高阶组件本质本质是函数,将组件作为接收参数,返回一个新的组件。HOC本身不是React API,是一种基于React组合的特而形成的设计模式。解决的问题(作用)一句话概括:功能的复用,减少代码冗余进一步解释:在实际情况中,多个组件可能会做某些相同的事情,有着相同的功能,存在大量的代码冗余。我们可以将这部分功能拆分出来,每个组件尽量只保留自己独有的作用,通过HOC生...

2019-09-02 21:02:00 700

转载 JavaScript异步

JavaScript异步类型延迟类型:setTimeout、setInterval、setImmediate监听事件:监听new Image加载状态、监听script加载状态、监听iframe加载状态、Message带有异步功能类型: Promise、ajax、Worker、async/awaitJavaScript常用异步编程Promise Prom...

2019-08-30 21:17:00 74

转载 CSS预处理——LESS

LESS是什么? less是一门CSS预处理语言。由于CSS本身并不是程序式语言,不方便维护和扩展,没有变量、函数、作用域等概念。而LESS在CSS的基础语法之上,引入了变量、Mixin混入、运算以及函数等功能,大大简化了CSS的编写,降低了CSS的维护成本。 本质上,LESS包含一套自定义的语法及一个解析器,写好的LESS文件会通过解析器编译生成CSS文件。LESS并...

2019-08-27 18:25:00 150

转载 JavaScript字符串、数组、对象方法总结

字符串方法示例字符串:const str = "hello,kitty,hello,vue ";一、基本方法charAt() 返回指定索引的字符startsWith() 判断字符串是否以xxx开头,返回布尔值endsWith() 判断字符串是否以xxx结尾,返回布尔值padStart() 头部补全,返回新字符串pa...

2019-08-24 20:36:00 105

转载 HTML文件上传与下载

文件下载传统的文件下载有两种方法:使用<a/>标签,href属性直接连接到服务器的文件路径window.location.href="url"这两种方法效果一样。但有个很大的问题,如果下载出现异常(连接路径失效、文件不存在、网络问题等),会导致原本的页面被覆盖掉,显示404等错误信息。大致的优化思路如下:使用<a/>标签HTML...

2019-08-18 19:47:00 340

转载 Nginx反向代理解决iframe跨域问题

前言 这几天有个需求:做个表单页面,要求后台人员能自定义发布表单,用户来填写表单。我一想,这不麦克表单有现成的吗,拿来就用!发布表单后,可以选择使用iframe方式嵌入网站,一切顺利。  当时的网站是http协议,后来升级了https,发现完全加载不出来。原因是浏览器的安全限制,在https协议下不允许有http的iframe请求。然而,除了交钱,...

2019-04-28 20:29:00 3168

转载 网站升级HTTPS后WebSocket不能连接的问题

一、前端代码var socket = new WebSocket("wss://www.smcic.cn/wss/");注意点:如果网站使用HTTPS,WebSocket必须要使用wss协议;使用wss协议的连接请求必须只能写域名,而非IP+端口;建议在URL域名后面为websocket定义一个路径,本例中是/wss/;二、Nginx配置前提是...

2019-04-27 22:11:00 4542

转载 网站通信协议升级到HTTPS&HTTP2

为何要升级到HTTPS和HTTP2?http://baijiahao.baidu.com/s?id=1602041305989767011&wfr=spider&for=pchttps://www.jianshu.com/p/67c541a421f9https://segmentfault.com/a/1190000019891825HTTPS一、所需...

2019-04-21 21:03:00 376

转载 HTML5 本地存储

早期Web使用cookie在浏览器端保存数据,但存在以下问题:cookie的大小限制在4KB浏览器会限制所有站点在计算机上的存储cookie总数cookie会随着每次HTTP事务一起发送,会浪费一部分带宽HTML5提供了WebStorage本地存储、IndexedDB本地数据库等,能够存储更多更复杂的数据。一、WebStorageWebStorage以Ke...

2019-04-20 13:02:00 108

转载 微信公众平台——分享接口踩坑记

前言本以为有微信公众平台开发文档,自定义分享样式还不简单?带着这样的想法,经历了两天半的踩坑经历,我写下了这篇文章。开发分享接口在目录中: 微信网页开发 --> 微信SDK说明文档中流程摘要一、按照文档,第一步要绑定安全域名,即“JS接口安全域名”(此处标记1号坑)二、第二步引入JS文件,需要下载并将其上传到服务器。这里要注意,在第一步中绑定的域名(路径)要能够...

2019-04-10 20:37:00 778

转载 HTML5移动端触摸事件

一、移动端事件问题1.click事件300ms延迟问题2007年第一代iphone发布,移动端Safari首创双击缩放功能,原理是click一次后,经过300ms之后检测是否再有一次click,如果有就会缩放,如果没有则是一个click事件。所以cilck操作会有卡顿感觉。2.dblclick事件失效由于双击缩放的存在,移动端的dblclick事件也失效了。二、移动端...

2019-01-01 21:58:00 157

转载 前端——CSS

CSSCSS是英文Cascading Style Sheets的缩写,称为层叠样式表,用于对页面进行美化。存在方式有三种:元素内联、页面嵌入和外部导入,比较三种方式的优缺点。语法:style = "key1:value1;key2:value2;"在标签中使用 style="xx:xxx;"(任何一个标签都可以使用style属性来编写样式)在页面中嵌入 < ...

2018-12-30 22:13:00 156

转载 DOM中获取宽高、位置总结

原生JS一、文档、窗口的宽高和位置// 获取屏幕的宽高window.screen.height | window.screen.width// 屏幕可用工作区宽高window.screen.availHeight | window.screen.availWidth// 浏览器窗口可见区域宽高window.innerHeight ≈ documen...

2018-12-30 21:18:00 214

转载 Python异常处理总结

一、何谓异常处理  在我们调试程序时,经常不可避免地出现意料之外的情况,导致程序不得不停止运行,然后提示大堆提示信息,大多是这种情况都是由异常引起的。异常的出现一方面是因为写代码时粗心导致的语法错误,这种错误在程序编译时就可以发现;另一方面也可能是因为程序逻辑错误,这种错误往往是不可避免地,只能通过异常处理来防止程序退出。二、异常类型  Python自带的异常处理机制非常强大...

2018-12-22 14:57:00 241

转载 Django Template(模板)

一、模板组成组成:HTML代码 + 逻辑控制代码二、逻辑控制代码的组成1.变量语法格式 : {{ name }} # 使用双大括号来引用变量1.Template和Context对象(不推荐使用)from django.template import Context, Template t = Template('My name is {{ n...

2018-12-18 21:40:00 180

转载 Django view(视图)

在Django MTV模式中,View视图负责业务逻辑部分,路由系统接收到HTTP请求,并将任务分配给相应的视图函数,由视图函数来负责响应这个请求。无论视图本身包含什么逻辑,都要返回响应。在这里HTTP请求中产生两个核心对象:HTTP请求:HttpRequest对象HTTP响应:HttpResponse对象所在位置:django.http在Django项目中,...

2018-11-17 15:49:00 94

转载 Django ORM

什么是ORM?MVC框架中重要的一部分就是ORM,实现了数据模型与数据库的解耦,即数据模型不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库。ORM是对象关系映射的简称,主要任务是:根据对象的类型生成表结构将对象、列表操作,转换成SQL语句(或其他数据库的语句)将SQL查询到的结果转换为对象、列表 类名对应 ------&...

2018-10-19 21:44:00 115

转载 Django 路由系统(URLconf)

URLconf是什么?URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL与要为该URL调用的view函数之间的映射表;你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码。urlpatterns = [ url(正则表达式, views视图函数,参数,别名),   re_path(正则表达式,...

2018-10-10 20:07:00 376

转载 Django简介

Django是一种基于Python的Web开发框架什么是web框架?框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表演。对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端。最简单的Web应用就是先把HTML用...

2018-10-09 20:27:00 176

转载 Ubuntu 18.04安装MySQL指南

前言Ubuntu18.04想要安装MySQL,只能安装MySQL8.0版本。如果你直接 apt-get install mysql-server 安装,那么恭喜踩坑!先给出彻底删除mysql5.x的命令:#下面命令依次执行sudo rm /var/lib/mysql/ -R # 删除数据库目录sudo rm /etc/mysql/ -R ...

2018-09-20 20:02:00 91

转载 前端——jQuery

初识jQuery什么是jQuery?jQuery就是JavaScript和Query,是辅助JavaScript开发的库,应用广泛,形成了行业标准。它对DOM操作做了很好的封装,我们可以用jQuery非常方便地来代替DOM操作。为什么要使用jQuery?轻量级,最新版本的大小只有85KB;功能强大的选择器;出色的DOM封装;兼容性好(可以在不同浏览器使用);可靠的事件处理...

2018-08-31 19:09:00 195

转载 前端——DOM

什么是DOM?DOM是W3C(万维网联盟)的标准,是Document Object Model(文档对象模型)的缩写,它定义了访问HTML和XML文档的标准:“W3C文档对象模型(DOM)是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容、结构和样式。”DOM标准被分为三个不同的部分:核心 DOM - 针对任何结构化文档的标准模型XM...

2018-08-13 10:16:00 183

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除