自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 python 处理 Excel 模块使用三方库的对比分析(xlrd/xlwt/xlutils/openpyxl)

python 处理 Excel 模块使用三方库的对比分析(xlrd/xlwt/xlutils/openpyxl)

2022-11-17 10:00:00 849 1

原创 python 是如何进行内存管理的?

python 是如何进行内存管理的?

2022-11-15 18:20:49 172

原创 Git 的一些常用命令

Git 的一些常用命令。

2022-11-15 18:17:05 199

原创 SPA、MPA 的优缺点

SPA 优点,我认为更多是在软件工程方面,SPA 形式可以做到前后端彻底分离,只要制定好 API 规范,那么前后端就可以独立开发,并且一套 API 可以同时供多个「端」使用。此外,前端有了更好的模块化工具,可复用组件以 js 库的形式进行复用,更容易维护(相比 MPA,通常复用是由模板系统提供的能力)。此外,利用 webpack 的 loader 机制,可以实现更集约化的模块,例如 Vue 的 Single File Component,将相关的 html、css、js 代码集中在一起管理。

2022-11-15 17:58:09 692

原创 跳动的心 - HTML 代码

跳动的心代码:用 html 实现的一个跳动的心,可以用于日常表白使用或者制造一些小浪漫,可以直接用浏览器打开。拿走不谢。(新建文本文件,全文粘贴后,修改文件后缀为 .html 就可以直接在浏览器运行了)

2022-11-08 13:29:39 6160

原创 一些语义相似单词的辨析(validate / verify / check 与 state / status)

validate / verify / checkvalidate,可以翻译为“校验”,一般用于有“标准答案”的场景。比如登录表单里输入手机号,我们可以校验用户输入的字符串是不是一个合理的手机号(比如是不是11位,是不是已知的号段)。这里校验的标准是“合理的手机号格式”,这是一个标准答案。validate 的规则一般不依赖于外部知识或信息。validate 的结果一般是正确或错误。validate 是一个动词,指校验的过程。valid/invalid 是相应的形容词,validation 是动作的名词。

2022-03-02 15:28:52 6156

原创 微信小程序通信模式

小程序的场景,获取用户数据的方式有所不同,应用服务器不能直接向微信服务器请求数据,而是由小程序向微信服务器获取,微信服务器会将数据使用一个密钥加密,返回给小程序。小程序没有密钥、无法解密这段数据。小程序将该加密数据发送给应用服务器。应用服务器也没有解密密钥,但可以通过一套流程来获得解密密钥。下面是小程序场景中获取用户数据的流程:#mermaid-svg-JHoH4yK3OfuyFyjT .label{font-family:'trebuchet ms', verdana, arial;font-famil

2022-01-15 14:24:45 866

原创 微信 H5 通信模式

获取隐私数据H5 应用,要获取用户在微信中保存的数据,使用的是 oAuth 协议,在 H5 中发起授权,用户授权后应用服务器可以获得一个 access_token(该 token 的权限与用户的授权一致),之后应用服务器可以随时使用该 token 访问微信服务器,获取用户数据。该 token 的有效期较长,以小时或天为单位。#mermaid-svg-5REJSlVG2KUeMBWb .label{font-family:'trebuchet ms', verdana, arial;font-famil

2022-01-15 14:17:59 289

原创 OAuth 授权流程图

OAuth 授权流程图:#mermaid-svg-cUhXv8OnqzcSco4D .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-cUhXv8OnqzcSco4D .label text{fill:#333}#mermaid-svg-cUhXv8OnqzcSco4D .node rect,#mermaid-s

2021-12-24 15:20:23 775

原创 使用 token 认证就不会有任何问题了吗?

前端会有让 token 失效的需求,比如登出,因此需要向后端发请求,让后端保存一个让 token 失效的信息,比如后端存在数据库中,那么每次前端发请求的时候都要去查一次数据库,这显然与我们初衷不符。后端可以在生成 token 的时候给 token 配置一个失效时间,一般而言,这个失效时间很短(0.5-1h),这样,即使 token 在前端泄漏,但是由于其有效期很短,因此并不会造成很大的安全事故。然后 token 很短的话,对用户体验很不好,很可能造成用户在使用的过程中被强制退出,让用户重新登录,因此 acc

2021-12-24 15:11:34 867

原创 为什么选择 token 的方式而不用 session?

首先我们看一下基于 session 的登陆会遇到什么问题。我们可能有多个后端比如现在的 XX项目,有多个后端:3 个 django 后端,1 个 java 后端。 只有一个前端,后端都是在同一个域名下,所以前端发送给后端的 sessionid 其实都是一样的,那么为了实现共享登陆的状态,必须实现多服务器共享 session.那么如何实现多服务器共享 session?解决 session 的共享的方案通常是把这个 sessionid 存储在 cache(对外暴露的是键值对的形式),比如第三方存

2021-12-23 16:17:55 3687 1

原创 何为 Token?什么是基于 token 的认证?

何为 Token?token 其实就是一个令牌,一个 token 其实就是服务器生成的一段数据,包含了唯一性识别一个用户的信息,一般被生成为一长串随机字符和数字。什么是基于 token 的认证?Token-based authentication/authorization(基于 token 的认证和授权)是这样一种技术:当用户在某处输入了其用户名和密码之后,服务器会生成一个唯一的已加密的 token, 该 token 会替代登录凭证,用以访问受保护的页面和资源。 这种方式的要点是每一次向后端发请求时

2021-12-23 16:11:36 684

原创 基于 session 的登陆

因为 http 是无状态的,所以客户端和服务端需要解决如何让他们之间的对话变得有状态,例如只有登陆状态的用户才有权限调用某些接口,那么在用户登录之后, 需要记住该用户是已经登陆的状态。常见的方法是使用 session 机制,也就是我们现在大多数时候使用的方式。常见的 session 工作模型是这样的 session 机制用户在浏览器登陆之后,服务端为用户生成唯一的 session id,存储在服务端的存储服务(例如 MySql, Redis)中该 session id 也同时返回给浏览器,以 SES

2021-12-23 16:06:02 4015

原创 FastAPI 是什么?

FastAPI 是什么?Django、FastAPI 都是 Web 开发框架,REST、GraphQL 是 API 的形式。Django、FastAPI 都可以实现 REST 接口和 GraphQL 接口。以下是我的一些初步的认识:FastAPI 是一个轻量级的 Web 框架。相比起来,Django 是 battery included,虽然配置麻烦,但默认就带了许多功能,包括很好用的 ORM、migration 工具,也包括很多安全方面的中间件等等,还有比如模板系统、静态资源管理系统等等,对

2021-12-23 15:50:36 5911 1

原创 gte、lte、gt、lt 缩写的含义

gte、lte、gt、lt 缩写的含义好记性不如一个烂笔杆,还是记下来吧。gt:大于(greater than)gte:大于等于(greater than or equal)lt::小于(less than)lte:小于等于(less than or equal)eq:等于(equal)neq:不等于...

2021-12-23 15:40:21 25219

转载 交叉验证

交叉验证(Cross Validation)原理小结    交叉验证是在机器学习建立模型和验证模型参数时常用的办法。交叉验证,顾名思义,就是重复的使用数据,把得到的样本数据进行切分,组合为不同的训练集和测试集,用训练集来训练模型,用测试集来评估模型预测的好坏。在此基础上可以得到多组不同的训练集和测试集,某次训练集中的某样本在下次可能成为测试集中的样本,即所谓“交叉”。那么什么时候才需要交叉验证...

2019-05-10 16:27:45 272

原创 在Django中使用内置的一些函数,实现分页功能

from django.core.paginator import Paginator,PageNotAnInteger,InvalidPage,EmptyPage在视图层写入代码:if request.method == "GET": # 获取 url 后面的 page 参数的值, 首页不显示 page 参数, 默认值是 1 page = request.GE...

2019-05-06 17:10:32 277 2

原创 在Django中实现分页

django自带名为paginator的分页工具paginator类的作用是将我们分页的数据分割成若干份,当我们实例化一个paginator类的实例时,需要给paginator传入两个参数,第一个参数是数据源 ,可以是一个列表,元祖,以及查询结果集第二个参数需要传入一个整数,表示每页显示数据条数paginator类中有三个常用的属性,分别是:count :表示所有页面的对象总数num_pa...

2019-05-06 17:05:10 196

原创 Django部分面试技术问题 part1

django的orm中如何查询id不等于5的元素?Student.objects.filter().excute(id=5)//查询id不等于5的元素使用Django中modelfilter条件过滤方法,把下边sql语句转化成python代码select*fromcompanywheretitlelike"%abc%"ormecount>999orderbycreatetime...

2019-04-30 09:21:59 154

空空如也

空空如也

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

TA关注的人

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