作者文章归档:reno

python 实现JWT


[TOC]

python 生成JWT 规范Token

JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在两个组织之间传递安全可靠的信息。

JWT 含义 :JSON 格式的在web 中传输的Token(令牌),既然是Token那一定是加密过得

JWT 实现:

JWT 有两种实现方式JWS(JSON Web Signature)以及JWE(JSON Web Encryption)

目前很多实现JWT是 JWS和自加密

JWT 优势:

安全并且轻量

JWT 应用:

Token签证

JSON Web Signature(JWS)

JSON Web Signa

Read more

GIT 使用


GIT正常使用看它

git 作用

1 项目托管 --- 代码同步到仓库

2 版本控制 --- 代码变更有记录

3 协同开发 --- 不同成员修改提交需要master授权

git 本身是linux 大佬开发的一套协议 ,实现版本很多 主要分两类:

1 开源社区

提倡代码开源共享

最常见的就是国际通过的开源社区githup :cow:

其次是中国开源社区gitee :clown_face:

2 私有仓库

一般是公司搭建的只给公司成员使用

最出名的是gitlab

其次和国产的gitlab Gogs[https://gogs.io/docs]

GIT 空间结构

本地仓库 (提交至远程仓库)

工作区

Read more

python 代码打包成执行文件


pyinstaller --将 python 代码打包成执行文件

执行文件

可以理解为电脑点击一键执行的QQ,微信那种

优势

往往我们写好的python 代码需要安装配置python 环境之后才能运行 打包成执行文件就不需要配置了

本质上是将python 解释器,项目依赖包,和我们项目源码 二次编译打包在了一起

安装

pip install pyinstaller

使用

使用PyInstaller 首先我们要确定我们的打包的脚本,服务,项目,代码 有且只有一个入口文件,所有用到依赖包都可以在这个文件或往上追溯到。

一行命名搞定

打包名: pyinstaller -F main.py [--n

Read more

OpenResty


OpenResty 简介

penResty(也称为 ngx_openresty)是一个全功能的 Web 应用服务器。它打包了标准的 Nginx 核心,很多的常用的第三方模块,以及它们的大多数依赖项。

通过揉和众多设计良好的 Nginx 模块,OpenResty 有效地把 Nginx 服务器转变为一个强大的 Web 应用服务器,基于它开发人员可以使用 Lua 编程语言对 Nginx 核心以及现有的各种 Nginx C 模块进行脚本编程,构建出可以处理一万以上并发请求的极端高性能的 Web 应用。

NGINX 解决了 C10K 即1w 并发 的问题 OpenResty 性能再高一些

简单理解下 O

Read more

lua 基础


Lua

Lua(发音: /ˈluːə/)是一个简洁、轻量、可扩展的脚本语言。Lua在葡萄牙语中的意思是月亮。

Lua 从一开始就是作为一门方便嵌入(其它应用程序)并可扩展的轻量级脚本语言来设计的,因此她一直遵从着简单、小巧、可移植、快速的原则,官方实现完全采用 ANSI C 编写,能以 C 程序库的形式嵌入到宿主程序中。

解释器100k 比python 小几百倍左右

Lua 非常高效,它运行得比许多其它脚本(如 Perl、Python、Ruby)都快

作为一门过程型动态语言,Lua 有着如下的特性:

  1. 变量名没有类型,值才有类型,变量名在运行时可与任何类型的值绑定;
  2. 语言只提供唯一一种数据结构

Read more

Socket 编程发展


入门篇

Linux Socket 编程领域 发展史 select --> poll--> epool

i/O多路复用高并发增强,Mginx 利用epool 所以实现了高并发

select 模型

elect 函数监视的文件描述符分 3 类,分别是 writefds、readfds 和 exceptfds。调用后 select 函数会阻塞,直到有描述符就绪(有数据 可读、可写、或者有 except),或者超时(timeout 指定等待时间,如果立即返回设为 null 即可)。当 select 函数返回后,通过遍历 fd_set,来找到就绪的描述符。

select 目前几乎在所有的

Read more

Django 日志模块


Django 日志源于 python 内置 logging 模块且封装的好了基本自动化配置了

所以本文全部是理解上的内容

由四个部分组成

日志记录器(Loggers)

事件处理者(Handlers)

过滤者

格式化处理者

Loggers

日志记录器是进入日志系统的入口点。每个日志记录器都是一个命名桶,可以将消息写入其中进行处理。日志记录器被配置为具有日志级别。此日志级别描述日志记录器将处理的消息的严重性。Python定义了以下日志级别:

  • DEBUG: 调试模式才会出现的
  • INFO: 正常信息错误
  • WARNING: 可以忽略的警告
  • ERROR: 必须要处理的问题
  • CRITICAL: 严重的问题

Read more

DRF 内实现view 和serializer更多交互


DRF 内如何实现view 和serializer更多交互
先说下drf 工作流

post put delete patch 请求

请求接受 ----> 路由匹配 ----> 解析器解析请求 ----> 身份认证-----> 权限判断 -----> 进入view---> 自动化调用序列化器 -----> 反序列化器 校验参数,序列化参数 入库 并返回结果----->渲染器 渲染数据 ----->响应请求

get 请求

基本一样

.......

调用序列化器 ------> 校验参数 跟据参数 序列化数据

...........

#

Read more

Django 配置信息


配置是django 的灵魂伴侣

在DJANGO 中配置信息会很重要 因为官方工具以及插件的使用基本哦都是通过配置项导入的

其中比较重要的信息 如 秘钥 根目录 数据库 这些django 都是开箱即配好的

主要是要注意自己的应用和第三方应用的注册 以及一些配置的修改

DRF 的配置项同样写在 Django 默认的sttings 里面 而DRF 中简单的业务逻辑已经自动化实现了,整个代码实现更像是在配置文件那配置项就更加重要了

-------settings 中加入REST_FRAMEWORK ----------------
# 项目名称
PROJECT_NAME 
# 项目根目录位置 这个

Read more