自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SQLAlchemy 连接使用数据库

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

2023-11-26 23:34:21 38

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

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

2023-11-22 00:03:29 120

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

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

2023-11-21 00:15:49 134

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

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

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

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

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

2023-11-12 23:29:31 35

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

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

2023-11-11 22:19:19 183

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

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

2023-09-18 22:16:24 154

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

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

2023-09-15 23:37:45 109

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

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

2023-09-13 17:58:52 136

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

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

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

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

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

2023-05-07 14:37:14 143

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

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

2023-05-04 22:24:27 173

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

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

2023-04-23 19:50:35 301

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

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

2023-04-18 22:15:28 241

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

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

2023-04-08 23:09:19 670

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

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

2023-04-02 11:27:02 800

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

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

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

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

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

2023-03-22 22:21:40 980

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

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

2023-03-21 23:06:00 535

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

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

2023-03-14 17:07:18 571

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

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

2023-03-10 23:16:33 1701

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

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

2023-03-05 01:34:25 1106

原创 Python笔记一之excel的读取

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

2023-03-01 21:24:59 586

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

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

2023-02-17 21:17:18 581

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

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

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

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

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

2023-01-29 23:32:14 804

原创 Python连接es笔记二之查询方式汇总

s = Search(using = "default") . index("exam") s = s . query("match" , name = "张三丰")query() 中接受两个参数,第一个是字段查询的方式,比如这里是 match,也可以是 term,这个依照查询的目的来替换。第二个则是查询的字段与值,比如这里是查询的 name 字段为 “张三丰” 的数据。

2023-01-16 22:50:59 1075

原创 Python连接es笔记一之连接与查询es

有几种方式在 Python 中配置与 es 的连接,最简单最有用的方法就是定义一个默认的连接,如果系统不是需要访问多个集群,最建议的方式就是使用方法创建连接,然后所有的操作都会自动使用这个连接。

2023-01-10 21:54:32 1927

原创 Django笔记三十四之分页操作

这一篇笔记介绍一下如何在 Django 使用分页。主要用途是列表数据的切割,比如说有 3000 条用户数据,前端需要一个列表接口用于展示这些数据,但是一次性展现这么多数据不合适,所以打算用分页的方式来操作。比如一页20条数据,前端通过按钮控制 page_num 和 size 参数用于后端返回数据。

2023-01-06 22:38:17 514

原创 Django笔记三十三之缓存操作

这一节介绍一下如何在 Django 中使用 redis 做缓存操作。在 Django 中可以有很多种方式做缓存,比如数据库,比如服务器文件,或者内存,这里介绍用的比较多的使用 redis 作为缓存。其中,redis 的安装我们在 celery 系列笔记的第一篇已经介绍过了,可以直接使用 docker 来操作,这里不做赘述了。

2022-12-30 23:53:08 287

原创 es笔记七之聚合操作之桶聚合和矩阵聚合

桶(bucket)聚合并不像指标(metric)聚合一样在字段上计算,而是会创建数据的桶,我们可以理解为分组,根据某个字段进行分组,将符合条件的数据分到同一个组里。桶聚合可以有子聚合,意思就是在分组之后,可以在每个组里再次进行聚合操作,聚合的数据就是每个组的数据。

2022-12-29 21:35:20 1447 1

原创 es笔记六之聚合操作之指标聚合

类似于分类分组,按照某个 key 将符合条件的数据都放到该类别的组中计算一组文档的相关值,比如最大,最小值根据多个 key 从文档中提取值生成矩阵,这个操作不支持脚本(script)将其他聚合的结果再次聚合输出聚合是支持套娃(嵌套)操作的,你可以在聚合的结果上接着进行聚合操作,es 是不限制聚合的深度的。

2022-12-27 22:21:50 2259

原创 es笔记五之term-level的查询操作

官方文档上写的是 term-level queries,表义为基于准确值的对文档的查询,可以理解为对 keyword 类型或者 text 类型分词为 keyword 的字段进行 term 形式的精确查找。

2022-12-22 19:59:36 378

原创 es笔记四之中文分词插件安装与使用

前面我们介绍的操作及演示都是基于英语单词的分词,但我们大部分使用的肯定都是中文,所以如果需要使用分词的操作肯定也是需要使用中分分词。这里我们介绍一下如何安装中文分词插件。可以发现是无法搜索到结果的。其中,_doc 后面的 16 是我们要查询的数据的 id,fields 后面跟着的要查看的分词结果的字段名。可以看到 一个苹果 这个字符串,被挨个分成了四个。然后我们来安装一下中文分词的插件。

2022-12-19 01:57:24 361

原创 es笔记三之term,match,match_phrase 等查询方法介绍

首先介绍一下在 es 里有两种存储字符串的字段类型,一个是 keyword,一个是 text。keyword 在存储数据的时候是作为一个整体存储的,不会对其进行分词处理text 存储数据的时候会对字符串进行分词处理,然后存储。而对于查询方法, term 是精确查询,match 是模糊查询。接下来我们用几个例子,来分别表达下这两种类型的字段,使用 term,match,match_phrase 等搜索的情况。

2022-12-19 01:56:40 7302 4

原创 es 笔记二之基础查询

这一篇笔记介绍 es 的基础查询。基础查询包括很多,比如排序,类似数据库 limit 的操作,like 操作,与或非等,对于这些操作,我会在介绍他们的用法之后加上对应的数据库 sql 便于理解。下面的操作都在 kibana 中实现。

2022-12-19 01:55:07 678

原创 es笔记一之es安装与介绍

首先,我们进入 kibana 界面,创建一条数据,然后根据这条数据来介绍 es 中结构的层级关系。点击 PUT 命令同行右边的三角形,或者按住 ctrl + enter 确认,我们就完成了一次数据的创建。通过数据的存储和查看,我们可以差不多了解 es 中数据的操作方式是 restful 风格的,可以通过 GET、PUT、POST、DELETE 的方式来实现数据的增删改查。{

2022-12-19 01:53:49 366

原创 Django笔记三十二之session的使用

django_session 表的单独获取查看操作一般在程序里不会出现,因为前后端都是通过 cookie 中 sessionid 直接获取到对应的数据,但为了以防万一,或者你对这张表有一些兴趣,这里额外介绍一下如何单独操作这张表里的数据。然后通过 session_key 来获取这条数据,比如 session_key 为。

2022-12-19 01:51:40 1325 1

原创 Django笔记三十一之全局异常处理

在这里,调用 process_exception() 函数之后,我们这里直接 return 了 response,还有一个 http 的状态码 status=500,这些信息都是可以自己拟定的,到时候和前端约定好,检测返回了某个状态码比如 500,然后就友好的显示某个报错弹窗信息,比如后台正在处理报错等。这里我们主要输出两个信息,一个是接口请求的路径,request.path,一个是报错信息 traceback_info,当然,这里我们还可以记录更多的信息,比如请求的用户信息,请求的参数等。

2022-12-19 01:50:15 463

原创 Celery笔记九之task运行结果查看

这一篇笔记介绍一下 celery 的 task 运行之后结果的查看。是将 task 的运行结果保存在 redis 的第二个数据库(数据库索引从0开始)。我们还可以将 task 的运行结果保存到 Django 的数据库,这一篇笔记将介绍如何查看 redis 和 Django 数据库中 task 运行的结果。

2022-09-12 21:27:30 2056 1

空空如也

空空如也

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

TA关注的人

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