自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Tornado框架路由系统介绍及(IOloop.current().start())启动源码分析

众所周知,Django、Flask、Tornado是非常受欢迎的三大Web开发框架,Django大而全、flask小而精、Tornado性能高。那具体他们到底有哪些的优势?在各种项目上又改该如何选择?DjangoDjango走的大而全的方向,开发效率高。它的MTV框架,自带的ORM,admin后台管理,自带的sqlite数据库和开发测试用的服务器,给开发者提高了超高的开发效率。重量级web框架,功能齐全,提供一站式解决的思路,能让开发者不用在选择上花费大量时间。...

2022-07-29 13:41:57 648 1

原创 redis延时队列

我们平时习惯于使用Rabbitmq和Kafka作为消息队列中间件,来给应用程序之间增加异步消息传递功能。这两个中间件都是专业的消息队列中间件,特性之多超出了大多数人的理解能力。使用过Rabbitmq的同学知道它使用起来有多复杂,发消息之前要创建Exchange,再创建Queue,还要将Queue和Exchange通过某种规则绑定起来,发消息的时候要指定routingkey,还要控制头部信息。消费者在消费消息之前也要进行上面一系列的繁琐过程。...

2022-07-29 13:39:29 209

原创 redis分布式锁和看门狗的实现

分布式锁

2022-07-29 10:28:25 1305

原创 关于密码加密的一点思路

密码加密

2022-07-29 10:23:43 162

原创 Python中RabbitMQ的使用

一、简介RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现的产品,RabbitMQ是一个消息代理,从“生产者”接收消息并传递消息至“消费者”,期间可根据规则路由、缓存、持久化消息。“生产者”也即message发送者以下简称P,相对应的“消费者”乃message接收者以下简称C,message通过queue由P到C,queue存在于RabbitMQ,可存储尽可能多的message,多个P可向同一queue发送message,多个C可从同一个queu

2022-01-10 18:49:50 1759

原创 Go语言初始

Go语言初始一、go语言介绍和发展# 好多公司:python+go混用,架构师---》前端,运维,测试,后端各种语言# Go 即Golang,是Google公司2009年11月正式对外公开的一门编程语言--》12年# 真正发展也就6,7年时间,很新,云原生的火--docker,k8s# Go上有些坑----》一直在发展---》泛型# python 1989年 java 1990年# Go是静态强类型语言,是区别于解析型语言的编译型语言(静态:类型固定 强类型:不同类型不允许直接

2021-11-06 19:30:38 257

原创 django中实现悲观锁与乐观锁

django中实现悲观锁与乐观锁1.数据库并发处理问题在多个用户同时发起对同一个数据提交修改操作时(先查询,再修改),会出现资源竞争的问题,导致最终修改的数据结果出现异常。比如限量商品在热销时,当多个用户同时请求购买商品时,最终修改的数据就会出现异常[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RWpbej13-1636196467076)(2018082423563121)]实例一:数据库模型:from django.db import models cl

2021-11-06 19:02:19 594

原创 Haystack的介绍和使用

Haystack的介绍和使用一,什么是Haystack搜索是一个日益重要的话题。用户越来越依赖于搜索从噪声信息中分离和快速找到有用信息。此外,搜索搜索可以洞察那些东西是受欢迎的,改善网站上难以查找的东西。为此,Haystack试图整合自定义搜索,使其尽可能简单的灵活和强大到足以处理更高级的用例。haystack支持多种搜索引擎,不仅仅是whoosh,使用solr、elastic search等搜索,也可通过haystack,而且直接切换引擎即可,甚至无需修改搜索代码。二,安装相关的包pip in

2021-11-06 19:00:47 543 1

原创 Flask-SQLAlchemy

Flask-SQLAlchemy# SQLAlchemy是一个基于Python实现的ORM框架,跟web框架无关,独立的# django的orm,sqlalchemy(大而重),peewee(小而轻)# 异步orm框架:GINO# Python界没有一个特别好的微服务框架:nameko# java:dubbo(阿里开源),springcloud# go:grpc,go-zero,go-micropip install flask-sqlalchemy1、基本配置配置选项说明

2021-11-04 20:41:18 460

原创 Flask请求应用上下文源码分析

Flask请求应用上下文源码分析一、pipreqs的使用# 咱们写项目,项目的依赖,requirements.txt# 多种方式实现 -手写 -虚拟环境:pip freeze > requirements.txt -使用第三方插件自动生成:只生成当前项目所依赖的模块 - 项目依赖 pip3 install pipreqs==0.4.0 - 项目根路径下执行,生成依赖文件:pipreqs ./ --encoding=utf-8 - 安装依

2021-11-04 20:40:47 130

原创 Flask框架深入二

Flask框架深入二一、flask-session# 原生的session把数据加密后放到了cookie中# 以后可以把session放在数据库中,redis,文件中。。。。# pip install flask-session# 方式一from flask import Flask,sessionfrom flask_session import RedisSessionInterfaceimport redisapp = Flask(__name__)app.config['DEB

2021-11-04 20:39:41 347

原创 Flask框架深入一

Flask框架深入一1、函数加装饰器执行的顺序# flask的路由基于装饰器----》在视图函数上再加装饰器---》加多个装饰器的执行顺序---》登# 录认证装饰器---》加载router下,先做路由匹配,匹配成功执行被auth包裹的视图函数2、路由系统@app.router('/',menthods=['GET','POST']) ==> app.add_url_rule(rule='/',endpoint='index',view_func=index,methods=['GET'])

2021-11-04 20:39:06 170

原创 Flask框架

Flask框架1、flask框架初识Flask是一个Python编写的Web 微框架,让我们可以使用Python语言快速实现一个网站或Web服务,在介绍Flask之前首先来聊下它和Django的联系以及区别,django个大而全的web框架,它内置许多模块,flask是一个小而精的轻量级框架,Django功能大而全,Flask只包含基本的配置, Django的一站式解决的思路,能让开发者不用在开发之前就在选择应用的基础设施上花费大量时间。Django有模板,表单,路由,基本的数据库管理等等内建功

2021-11-04 20:38:22 8509

原创 jwt(json web token)

Python之jwt(json web token)一、什么是jwt在用户注册或登录后,我们想记录用户的登录状态,或者为用户创建身份认证的凭证。我们不再使用Session认证机制,而使用Json Web Token(本质就是token)认证机制。jwt全称json web token,是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间

2021-11-04 20:37:15 419

原创 drf源码分析与全局捕获异常

Python之drf源码分析与全局捕获异常一、认证源码分析views.py内认证类使用,与文件自定义认证类# authentication.pyfrom rest_framework.authentication import BaseAuthentication# 继承认证基类BaseAuthenticationclass bookAuthentication(BaseAuthentication): # 重写authenticate方法 def authenticate(se

2021-11-04 20:35:30 232

原创 drf路由组件Routers

drf路由组件Routers对于视图集ViewSet,我们除了可以自己手动指明请求方式与动作action之间的对应关系外,还可以使用Routers来帮助我们快速实现路由信息。REST framework提供了两个routerSimpleRouterDefaultRouter一、使用方法创建Router对象,并注册视图集# 导入SimpleRouter与DafaultRouter包from rest_farmework.routers import SimpleRouter,Dafault

2021-11-04 20:32:40 346

原创 drf视图组件

Python之drf视图组件一、局部校验全局校验源码分析截取一段views.py里的代码def post(self, request): back_dic = {'code': 200, 'msg': '新增成功', 'result': ''} result = BookModelSerializer(data=request.data) if not result.is_valid(): return Response(result.errors)

2021-11-04 20:31:59 146

原创 drf序列化器-Serializer

Python之drf序列化器-Serializer一、序列化器-Serializer的作用序列化,序列化器会将模型类对象转化为字典,经过Response变成json字符串反序列化,把客户发送过来的数据,经过request以后变成字典,序列化器可以将字典转成模型反序列化,校验客户发送数据的合法性二、定义序列化器Django REST framework中的Serializer使用类来定义,须继承自rest_framework.serializers.Serializer。需要先在数据库中

2021-11-04 20:31:08 1639

原创 django的drf入门规范

drf入门规范一、web应用模式在开发wdb应用时,有两种应用方式1、前后端不分离[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DIuZRcLc-1635934913862)(image-20210831100921267.png)]2、前后端不分离[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rdtYnJsZ-1635934913863)(image-20210831100951626.png)]二、API接口为了在团队内

2021-11-03 18:22:46 252

原创 django进阶

Python之django进阶文章目录Python之django进阶一、批量插入数据二、分页类的使用三、cookie介绍1、什么是cookie2、cookie的原理3、cookie版验证登录4、关于cookie的更多操作四、session介绍1、session相关方法2、session相关解析流程图3、session版验证登录五、CBV版添加装饰器六、中间件1、什么是中间件2、自定义中间件3、process_request4、process_response5、process_view6、process_

2021-11-03 18:21:40 185

原创 django与Ajax

Python之django与Ajax文章目录Python之django与Ajax一、准备知识、JSON1、什么是JSON2、stringify与parse方法二、Ajax简介三、前后端传输数据的编码格式(contentType)四、Ajax发送文件数据五、Ajax发送json数据六、ajax实现弹出框的二次确认一、准备知识、JSON1、什么是JSONJSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)JSON 是轻量级的文本数据交换格式JS

2021-11-03 18:20:29 157

原创 django的ORM常用字段和参数

Python之django(ORM常用字段和参数)文章目录Python之django(ORM常用字段和参数)一、测试环境的搭建二、单表操作之必知必会十三条1、all():查询所有结果2、filter(\**kwargs): 它包含了与所给筛选条件相匹配的对象3、get(\**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误4、exclude(\**kwargs): 它包含了与所给筛选条件不匹配的对象5、values(\*field)

2021-11-03 18:19:44 143

原创 django基础

Python之django基础文章目录Python之django基础一、django必会三板斧1、render方法2、HttpResponse方法3、redirect方法二、静态文件配置1、静态文件配置引导2、静态文件配置三、request对象参数(method,POST,GET)1、method2、POST请求3、GET请求4、总结四、Django连接MySQL1、配置文件中配置2、代码中声明五、django中的ORM1、models.py 书写格式2、数据库迁移命令3、orm其他操作4、字段的增删改查

2021-11-03 18:18:46 54

原创 django框架简介及安装

Python之django框架简介及安装文章目录Python之django框架简介及安装一、django框架思想引入二、什么是django1、python中三大主流框架2、安装django3、django创建项目一、django框架思想引入我们知道在python中可以实现python代码做一个服务端,并且引用浏览器(brower)当作服务端,在浏览器中输入127.0.0.1:8080import socketserver = socket.socket(socket.AF_INET,sock

2021-11-03 18:17:36 1054

原创 前端知识之jQuery

jQuery文章目录jQuery一、什么是jQuery二、jQuery的优势三、jQuery的内容四、jQuery的版本五、jQuery的两种导入方式六、jQuery语法七. jQuery对象与标签对象之间的转换九、查找标签1、基本选择器2、组合选择器/分组嵌套3、基本筛选器4、属性选择器5、表单筛选器6、筛选器方法7、总结十、操作标签1、CSS 类操作2、CSS样式操作3、位置操作4、尺寸5、文本操作6、值操作7、属性操作8、文档操作9、总结十一、事件1、jQuery绑定事件的两种方式2、克隆事件3、自

2021-11-03 18:17:05 1420

原创 前端知识之DOM和BOM

一. 前戏JavaScript分为 ECMAScript,DOM,BOM。# 截至目前为止 我们虽然已经学会了js语法 但是你会发现跟浏览器和html文件还是一点关系没有"""BOM 浏览器对象模型 Browser Object Model js代码操作浏览器DOM 文档对象模型 Document Object Model js代码操作标签"""二. BOM1. window对象window对象指代的就是浏览器窗口console.log(window.innerHei

2021-11-03 18:15:18 294

原创 前端知识之JavaScript

文章目录一. JavaScript概述1. ECMAScript和JavaScript的关系2. ECMAScript的历史二. JavaScript2种引入方式1. Script标签内写代码2. 引入额外的JS文件三. JavaScript语言规范1. 注释(注释是代码之母)2. 结束符四. JavaScript语言基础1. 变量声明2. 变量的命令规范3. 变量的5种基本数据类型4. ES6新增关键字let & const5. 使用var变量的声明被提前到作用域顶部,赋值则保留在原地(重点)6.

2021-11-03 18:14:17 12550 7

原创 前端知识之css

CSS文章目录CSS一、CSS介绍二、CSS语法1、注释2、CSS样式组成三、CSS三种引入方式四、CSS选择器1、基本选择器2、组合选择器3、属性选择器4、分组和嵌套5. 伪类选择器6. 伪元素选择器7. 选择器优先级8. 总结五. CSS继承1. 什么是继承?六. CSS常用属性1. 宽和高2. 字体属性3. 文字属性4. 背景属性5. display属性六. CSS盒子模型1. margin外边距2. border边框3. padding内填充4、总结七. 使网页中的元素产生阴影八. 清除某些HTM

2021-11-03 18:13:29 211

原创 HTML常用标签属性集合

HTML常用标签属性集合文章目录HTML常用标签属性集合**跑马灯****字体效果****区段标记****连结格式****贴图/音乐****表格语法****分割视窗****表单****表示颜色的常用三种方式****align属性****预格式化****列表****连接和图像****name连接名称****target目标窗口语法格式****title连接提示****图像** 语法格式**文字的排版****css 层叠样式表****css的优先级****CSS结构****长度随浏览器窗口大小而改变****首

2021-11-01 09:52:07 305

原创 前端HTML

HTML文章目录HTML一、Web服务本质二、HTML简介1. HTML是什么?2. 注意: HTML不是编程语言三. 两种打开HTML文件的方式四. HTML注释五. 六. HTML文档结构七. 标签的分类1: 单/双标签八. HTML标签格式九. head内常用标签1. 基本标签2. meta标签3. 总结十. body内常用标签十一. 特殊符号十三. 常用标签十四. 标签的分类2: 块级/行内十五. img标签十六. a标签十七. 列表标签1. 无序列表2. 有序列表3. 定义列表(了解)十八. 表

2021-11-01 09:51:18 449

原创 前端储备知识

前端储备知识文章目录前端储备知识一、什么是前端二、为什么学前端三、前端学习历程四、软件开发架构五、浏览器窗口输入网址发生了几件事六、HTTP协议一、什么是前端"""任何与用户直接打交道的操作界面都可以称之为前端比如:电脑界面 手机界面 平板界面什么是后端 后端类似于幕后操作者(一堆让人头皮发麻的代码) 不直接跟用户打交道"""二、为什么学前端"""因为我们是全栈开发工程师 但是前端这一块我们不会学的很详细 只要求做到能够看得懂基本的前端代码以及能够搭建一些简单的页面即可 先

2021-11-01 09:49:11 125

原创 数据库之操作MySQL

数据库之操作MySQL一、数据库1、什么是数据库数据库是数据管理的有效技术,是由一批数据构成的有序集合,这些数据被存放在结构化的数据表里。. 数据表之间相互关联,反映客观事物间的本质联系。. 数据库能有效地帮助一个组织或企业科学地管理各类信息资源。. 数据是数据库中存储的基本对象,是按一定顺序排列组合的物理符号。. 数据有多种表现形式,可以是数字、文字、图像,甚至是音频或视频,它们都可以经过数字化后存入计算机。2、数据库的分类数据库本质上就是一种C/S架构数据库的分类:关系型数据库和非关系

2021-11-01 09:46:22 502

原创 网络编程与并发编程(详细)

Python之网络编程与并发编程(详细)文章目录Python之网络编程与并发编程(详细)一、基于tcp/udp协议的socket套接字编程1、套接字工作流程2、套接字的部分函数使用方法及其含义2.1、服务端套接字函数2.2、客户端套接字函数3.3、公共用途的套接字函数3.4、面向锁的套接字方法3.5、面向文件的套接字函数3、基于tcp通信协议的代码3.1、服务端3.2、客户端4、基于udp通信协议的代码4.1、服务端4.2、客户端二、进程1、进程的概念2、并发和并行的区别3、进程的调度1、先来先服务算法2

2021-11-01 09:45:28 267

原创 button标签,慎用submit类型

在开发过程中html 标签,谨慎使用submit标签,如果button按钮对应的有ajax方法实现与后端进行数据交互,则使用submit类型会重复提交两次数据到beego端,会产生意想不到的bug。建议:1、button按钮未设置ajax方法与后端进行数据交互时,使用submmit类型;<input type="submit">2、若该button按钮需通过ajax方法实现与后端进行数据交互时,使用button类型;<input type="button" class="bt

2021-08-24 10:16:51 311

原创 Python之数据库基础

Python之数据库基础文章目录Python之数据库基础一、什么是数据库二、数据库与电子表格有什么区别三、数据库的类型1、关系型数据库(1)概念(2)优点(3)瓶颈2、非关系型数据库(1)概念(2)分类(1)面向高性能并发读写的key-value数据库(2)面向海量数据访问的面向文档数据库(3)面向可拓展的分布式数据库(3)缺点一、什么是数据库数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。

2021-07-31 20:57:14 133

原创 Python之面向对象详解

Python之面向对象详解文章目录Python之面向对象详解一、对面向对象的理解1、面向对象的编程———object oriented programming2、面向对象的重要术语3、函数和面向对象编程的区别二、封装,继承,多态1、封装(Encapsulation)2、继承(Inheritance)3、多态(Polymorphism)三、面向对象的各种方法1、静态方法 (用这个装饰器来表示 @staticmethod )2、类方法(用这个装饰器来表示 @classmethod)3、属性方法(用这个装

2021-07-14 17:45:38 305

原创 Python之面向对象编程

Python之面向对象编程文章目录Python之面向对象编程一、面向过程1.根据业务逻辑从上到下写代码2.开发思路是将数据和函数按照执行的逻辑顺序组织在一起3.分开考虑数据与函数定义性文字:优缺点:优点:将复杂的问题流程化,进而简单化缺点:扩展性差实例:面向过程式的登录注册程序(可查看上一篇ATM+购物车项目)注意:一般认为,如果你只是写一些简单的脚本,去做些一次性任务那么面向过程式编程无疑是最好的选择。但是如果你的任务是处理一些复杂的,且是需要不断迭代的那么面向过程就不再是做好的选择,还是用面向对象更方

2021-07-12 16:14:22 109

原创 Python之ATM+购物车项目详解

Python之ATM+购物车项目详解文章目录Python之ATM+购物车项目详解README.py一、三层架构详解二、开发目录结构设计bin目录为软件的执行目录config目录为软件的配置目录core目录为软件的核心代码目录db目录为软件的数据存放及数据处理目录interface目录为软件的结接口层目录lib目录为软件的公共模块目录log目录为软件执行的日志目录README 是介绍和解释项目的文本文件,通常需要包含有关项目内容的信息1.bin目录satrt.py2.config目录settings.pyA

2021-07-10 17:11:02 337

原创 Python之logging的模块的使用

Python之logging的模块的使用文章目录Python之logging的模块的使用一、日志相关概念1.日志的作用2.日志等级3.日志字段信息和日志格式4.日志功能的实现二、logging模块介绍1.什么是logging模块2.logging模块的作用3.logging模块的优点4.logging模块日志的级别三、logging模块的使用方式介绍1.logging使用方式介绍2.示例:直接导入logging模块3.logging模块定义的模块级别的常用函数第一种使用方式:简单配置默认输出格式为默认日志

2021-07-09 20:36:31 150

原创 python之序列化与反序列化(json与pickle)

python之序列化与反序列化(json与pickle)文章目录python之序列化与反序列化(json与pickle)一、什么是序列化与反序列化1.序列化2.反序列化3.json标准格式字符串二、为什么要序列化1.持久保持状态2.跨平台数据交互三、json能序列化的类型四、json序列化与反序列化的使用1.json序列化与反序列化基本使用2.json序列化的结果写入文件与读取json字符串格式进行反序列化操作序列化的结果写入文件从文件读取json格式的字符串进行反序列化操作五、序列化总结使用json的4

2021-07-09 18:39:36 129

空空如也

空空如也

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

TA关注的人

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