自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL面试必备三之事务

所谓事务,就是一系列的 SQL 组合,这些 SQL 操作要么全部执行,要么都不执行,是一个不可分割的工作单位。比如我们在支付系统中想要完成一个转账功能,比如从 A 账户转账一百元给 B 账户,那么从 A 账户的总额中减去 100,然后在 B 账户上加上 100,这两个就需要全部执行才算是这个转账操作的实现。这个过程就包含了 A 账户的减少 100,B 账户的加上 100,这两个操作加起来就是一个完整的事务。

2024-05-18 18:13:31 725

原创 MySQL面试必备二之binlog日志

关于 binlog,常被问到几个面试问题如下:1. binlog 是什么2. binlog 都记录什么数据3. binlog 都有哪些类型,都有什么特点4. 如何使用 binlog 恢复数据5. binlog 都有哪些作用6. binlog 属于逻辑日志还是物理日志

2024-05-11 00:01:19 987

原创 Python笔记五之正则表达式

这一篇笔记介绍在 Python 里使用正则表达式。正则表达式,Regular Expression,可用于在一个目标字符串里对于指定模式的字符进行查找、替换、分割等操作。比如,判断某个字符串里是否都是数字,或者是否包含指定字符串,又或者更直接的例子是判断电话号码或者邮箱是否合法等。这一篇笔记里,我们将先介绍一个正则表达式的函数,并以此来引入正则表达式的各种模式,并辅以各个例子进行介绍。

2024-04-06 00:02:25 822

原创 Python面试必备一之迭代器、生成器、浅拷贝、深拷贝

本篇笔记主要介绍 Python 面试过程中常被问到的迭代器、生成器、深拷贝、浅拷贝和可变类型与不可变类型

2024-04-05 23:42:40 863

原创 MySQL面试必备一之索引

本篇笔记主要介绍后端面试过程中,MySQL 索引相关的内容

2024-03-31 17:18:45 240

原创 Python笔记四之协程

协程是一种运行在单线程下的并发编程模型,它的特点是能够在一个线程内实现多个任务的并发操作,通过在执行任务时主动让出执行权,让其他任务继续执行,从而实现并发。以下所有的代码都是在 Python 3.8 版本中运行。

2024-03-18 22:18:18 744

原创 在 Windows 上利用Qwen大模型搭建一个 ChatGPT 式的问答小助手

经过分别使用 0.5B 版本和 1.8B 的版本,在我电脑的配置里,0.5B 版本的输出会快一些,但是在某些问题回答的质量上不如 1.8B。而 1.8B 版本答案质量相对较高,但是速度在 4g 显存的情况下,则非常慢。以上就是本次使用 Qwen1.5 在 Windows 上搭建问答小助手的全过程,之后还可以将大模型提供接口操作,将其应用到 web 页面上,从而实现一个真正的 ChatGPT 式问答助手。

2024-03-18 00:48:58 1037

原创 Python笔记三之闭包与装饰器

这一篇笔记介绍 Python 里面的装饰器。想要统计add而如果我们想要统计很多个函数的执行时间,然后打印出来,应该如何操作呢?这里就可以用上 Python 里装饰器的操作。

2024-03-12 23:55:47 808

原创 Python笔记二之多线程

这一篇笔记介绍一下在 Python 中使用多线程。以下的操作都是在 Python 3.8 版本中试验,不同版本可能有不同之处,需要注意。

2024-02-25 00:47:40 868

原创 Flask笔记七之基于类的视图

前面我们提供API接口,都是通过或者使用Blueprint的的方式来定义接口。现在这里介绍一下使用视图类的方式来提供接口。视图类的方式和 Django 中的 View 使用的方式类似,接下来我们将之前的接口改写成视图类的方式。

2024-01-28 22:03:06 376

原创 Flask笔记六之中间件操作

在Flask中,中间件通过装饰器来使用,被分为两部分,一个是请求前,用来操作,一个是请求后,用来操作。接下来介绍一下中间件从注册到使用的操作。这里我们定义两个测试用的中间件,我们在app/utils/文件夹下创建一个的文件夹,其下再创建一个文件修饰的函数表示在请求处理前进行的操作,这里是简单的打印一条消息,除此之外,我们还可以在这里对登录进行验证。这样的话,在前面的笔记里我们对接口进行的的装饰器就不需要了,就不要在每个接口前都进行这种装饰,可以使代码变得简洁,同样实现我们想要的功能。

2024-01-05 22:48:00 1144

原创 Flask笔记五之日志操作

之前在 Django 笔记里详细介绍了 logging 模块关于 formatters,handlers,loggers 等基础介绍,这里直接介绍如何在 Flask 中配置日志信息。

2024-01-02 22:48:25 591

原创 Flask笔记四之异常处理

在系统运行中,有时候需要处理报错异常。异常的来源可能是系统在运行中的报错,比如错误的运算的有 1/0 这种等,还有的是访问了不存在接口,又或者,我们在查验接口参数的时候,发现没有传必传参数,需要手动触发一个报错等。这里就介绍如何在 Flask 中进行异常处理。

2023-12-29 00:54:04 461

原创 Flask笔记三之连接使用数据库

这一篇笔记主要介绍 Flask 与数据库的连接,以及在接口里查询数据

2023-12-10 22:22:43 221

原创 SQLAlchemy 连接使用数据库

相对于 Django 来说,Flask 并没有 Django 中自带的那种 ORM 框架,但是我们可以利用第三方的 ORM 框架来进行操作,比如我们这里介绍的 SQLAlchemy。接下来这一篇笔记将会介绍如何使用 SQLAlchemy 连接数据库、建立模型、操作表、以及查询操作表数据等内容。

2023-11-26 23:34:21 396

原创 Flask笔记二之blueprint和session介绍

Blueprint 的使用主要有两步,一步是定义,一步是注册。下面我们用一个实例来介绍如何使用,比如我们这里使用用户登录验证的接口来操作。我们在app/文件夹下创建一个名为user的文件夹,在其下再创建一个名为bp_user.py这里,我们实例化了Blueprint,定义一个bp,然后使用的方式定义路由和可以调用的方法,比如GET,比如POST。在 login() 函数内部可以进行我们必要的一些逻辑处理,比如用户名密码进行验证操作。然后需要将其在return appflask run。

2023-11-22 00:03:29 250

原创 Flask笔记一之项目搭建、配置项导入

这一篇开始介绍Flask系列笔记,这个系列笔记将和之前的Django笔记一样会从Flask的官方文档中提取一系列的知识点,整理成系列笔记。这是 Flask 系列笔记的第一篇,本篇笔记介绍的是 Flask 项目的搭建以及配置项的导入,我们用到的 Python 的版本还是 3.8,用到的 Flask 的版本是 2.3.2。接下来我们这里用Pycharm创建一个项目,我们命名为flask_blog,在其下文件夹为app,其下再创建一个。

2023-11-21 00:15:49 215

原创 Redis对象的数据结构及其原理汇总

这样,我们就创建了两个对象,且两个都是字符串对象,因为键值对的 key 和 value 都是字符串。如果我们创建了一个列表数据,那么 key 是字符串对象,而值 value 是列表对象。//类型//编码//指向底层实现数据结构的指针void *ptrtype在上面的结构中,type 指的是这个对象的类型,比如我们创建了一个列表数据,那么这个数据的 key 就是一个字符串对象,由这个结构里的 type 来指定,这个数据的 value 就是一个列表对象,也是由 type 来进行指定区分。

2023-11-17 23:08:23 499 1

原创 Redis数据结构八之各对象对应的底层实现

本篇笔记介绍各对象及其编码和底层实现结构。属性用于表示这个对象的类型,比如 string,list,hash,set,zset 分别表示字符串对象,列表对象,哈希对象,集合对象和有序集合对象。属性则表示该对象使用的编码则是指向底层的指针。

2023-11-12 23:29:31 55

原创 Redis数据结构七之listpack和quicklist

虽然 listpack 没有了指向尾部节点的偏移量,但是同样可以快速找到 listpack 的尾部节点,方式是通过 总字节长度属性的值,可以直接获取到 listpack 的尾部,然后根据 entry 元素尾部的 length 属性,就可以找到尾部 entry 的起始地址了。

2023-11-11 22:19:19 278

原创 Redis数据结构六之跳跃表

前面介绍跳跃表节点的层属性是一个数组,包含多个指向下一个同一层级的指针,而每个节点层的大小则是根据幂次定律(power law) 来生成的。在创建一个跳跃表节点的时候,程序都会根据幂次定律随机生成一个介于 1 到 32 之间的值作为 level 数组的大小,这个规则是越大的数出现的概率越小,它有一种计算方式,层数每加 1,出现的概率都是前一个数字的 0.25。

2023-09-18 22:16:24 183

原创 Redis数据结构五之整数集合

整数集(intset)是集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis 就会使用整数集合作为集合键的底层实现。整数集合可以保存类型为 int16_t,int32_t,int64_t 的整数值,并且保证集合中不会出现重复元素。

2023-09-15 23:37:45 131

原创 Redis数据结构四之字典和哈希表

字典在 Redis 中应用相当广泛,在介绍字典之前,先来介绍一下字典、哈希表、哈希表节点的几个概念。其中,的底层就是一个哈希表student 下的就是组成哈希表的各个哈希表节点对于 Redis,哈希表和哈希表节点两个数据结构就可以实现我们对 key-value 数据的操作,但是随着哈希表保存的键值对增加或者减少,我们就需要对哈希表进行扩展或者收缩操作,因此就额外引入了字典结构来做一些额外的辅助操作,具体的实现我们接下来介绍。

2023-09-13 17:58:52 198

原创 Redis数据结构三之压缩列表

本篇笔记主要介绍 Redis 中压缩列表的结构及其缺陷

2023-05-14 22:22:35 373 1

原创 Redis数据结构二之SDS和双向链表

本篇笔记介绍 Redis 中 SDS(简单动态字符串)和双向链表的底层结构

2023-05-07 14:37:14 166

原创 Redis数据结构一之对象的介绍及各版本对应实现

本篇笔记介绍 Redis 中的对象及各个版本中每种数据类型的底层实现

2023-05-04 22:24:27 195

原创 Django笔记四十四之Nginx+uWSGI部署Django以及负载均衡操作

上一篇笔记中有介绍直接使用 uWSGI 作为 web 服务器来部署 Django,这一篇笔记介绍如何使用 Nginx 来部署。使用 Nginx 来部署相当于在 uWSGI 外面又嵌套了一层,uWSGI 作为内部服务被隐藏起来,这时候 Nginx 起的作用是反向代理。在这里,Nginx 的安装操作就不赘述了,网上都可以找得到如何操作,这里只讲相关的配置操作。

2023-04-23 19:50:35 486

原创 Redis基础命令汇总,看这篇就够了

本篇笔记将汇总 Redis 基础命令,包括几个常用的通用命令,和各个类型的数据的操作,包括字符串、哈希、列表、集合、有序集合等在内的基本操作。

2023-04-18 22:15:28 465

原创 Django笔记四十三之使用uWSGI部署Django系统

目前部署Django的方式一般是 Nginx + uWSGI + Django,这一篇笔记将会提供使用 uWSGI 部署 Django 的示例及其详解

2023-04-08 23:09:19 1116

原创 Django笔记四十二之model使用validator验证器

验证器是我们在model或者form表单里对数据进行校验的一种操作,通过定义验证内容,我们在保存数据前可以自动对保存的数据进行合法性校验

2023-04-02 11:27:02 1230

原创 Django笔记四十一之Django中使用es

首先我们要定义一下 es 的连接配置,这个在之前 Python 连接 es 的操作中有过介绍。

2023-03-26 20:18:26 1012 1

原创 Django笔记四十之运行Django环境的python脚本

这一篇笔记介绍如何在 Django 中运行脚本。假设说我们要实现一个功能,需要获取 blog.models.Blog 这张表里的总数且使用 print() 输出。如果代码逻辑很短,且是一次性执行的操作,我们可以在系统的根目录下使用在 shell 中操作实现。但是如果这个需求是一个很长的逻辑,且需要可以重复执行,那么应该如何操作呢?首先,我们需要可以用到 Django 里的 Blog model,然后使用 model 的方式来进行查询。我们可以将其写入一个文件,每次都使用 shell 来调用。

2023-03-22 22:21:40 1246

原创 Django笔记三十九之settings配置介绍

这一篇笔记介绍 Django 里 settings.py 里一些常用的配置项,这些配置有一些是在之前的笔记中有过介绍的,比如 logging 的日志配置,session 的会话配置等,这里就只做一下简单的回顾,有一些是之前没有介绍过的就着重介绍一下。

2023-03-21 23:06:00 626

原创 Python连接es笔记四之创建和删除操作

这一篇笔记介绍一下索引和数据的创建和删除。其实对于索引来说,如果可以接触到 kibana 的话,可以很方便的在界面进行操作,这里简单介绍一下如何使用代码来操作索引的创建和删除。

2023-03-14 17:07:18 610

原创 Python连接es笔记三之es更新操作

本篇笔记介绍如何使用 Python 连接 es 进行更新操作

2023-03-10 23:16:33 2190

原创 Django笔记三十八之发送邮件

本篇笔记介绍如何在 settings.py 中设置参数,通过调用函数实现 Django 里发送邮件的功能

2023-03-05 01:34:25 1284

原创 Python笔记一之excel的读取

本篇笔记主要介绍Excel文件读写操作

2023-03-01 21:24:59 838

原创 Django笔记三十七之多数据库操作(补充版)

本篇笔记介绍多数据库的操作,作为之前笔记的补充

2023-02-17 21:17:18 665

原创 Django笔记三十六之单元测试汇总介绍

本篇笔记会包括单元测试的编写方式,单元测试操作流程,如何复用数据库结构,如何测试接口,如何指定 sqlite 作为我们的单元测试数据库等

2023-02-05 17:23:08 547 1

原创 Django笔记三十五之admin后台界面介绍

假设说我们想要实现一些批量执行的操作,比如选中列表页某些数据,将 is_published 字段批量更新成 True(即已发布),我们就可以用到 actions 来实现。使用 admin.action 作为装饰器来装饰一个函数,然后将函数名称作为值放入 actions 列表中,在这里 queryset 参数即为页面选中的数据,它是一个 queryset 类型,所以这里可以直接进行 update() 操作。

2023-01-29 23:32:14 1146

空空如也

空空如也

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

TA关注的人

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