- 博客(122)
- 收藏
- 关注
原创 从闭包到类装饰器
当decorator1装饰器准备装饰函数时,返现里面也是个装饰器decorator2,就让decorator2装饰完,此时my_function就是decorator2返回的其内部的inner函数,再装饰decorator1。当 Python 解释器==加载模块时,装饰器会立即执行,并将被装饰的函数替换为装饰器返回的新函数。此时的 say_hello 函数,已经是被装饰过的了,是my_decorator函数返回的inner函数,func函数是原来的say_hello函数。
2024-11-06 18:32:49 694
原创 mysql中InnoDB索引与MyISAM索引
InnoDB 的聚簇索引和二级索引设计使其更适合事务处理和多用户并发访问,而 MyISAM 的非聚簇索引和全文索引支持使其在特定的读密集型应用中表现更佳。覆盖索引是优化查询性能的重要手段,通过创建合适的索引,可以显著提高数据库的查询效率。如果所需的全部列是A,C,但是有一个复合索引A,B,C,此时也不需要多余的回表查询,因为索引都包含所需数据。包含了查询中所需的全部列,因此查询可以直接从索引中获取数据,而不需要访问实际的数据行。如果查询中所需的三个列,它们各自都有索引,这个查询也不算覆盖索引查询。
2024-11-05 18:07:39 285
原创 迭代器与生成器
也可以创建自定义的可迭代对象,只需实现__iter__()方法并在其中返回一个迭代器对象。迭代器对象需要实现__next__()方法来定义如何逐个生成元素。else:# 使用自定义可迭代对象遍历print(num)在上述示例中,MyIterable类是一个自定义的可迭代对象,它的__iter__()方法返回了一个迭代器对象MyIterator。MyIterator类实现了__next__()方法来生成元素。通过使用for循环,可以遍历自定义的可迭代对象。
2024-11-04 16:41:01 665
原创 深入理解Python中的元类(metaclass)
原文连接一、类也是对象二、到底什么是元类(终于到主题了)三、__metaclass__属性四、自定义元类五、为什么要用metaclass类而不是函数?一、类也是对象在理解元类之前,你需要先掌握Python中的类。Python中类的概念借鉴于Smalltalk,这显得有些奇特。在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段。在Python中这一点仍然成立:复制代码但是,Python中的类还远不止如此。类同样也是一种对象。是的,没错,就是对象。
2024-11-01 13:54:59 597
原创 Mysql数据库Buffer Pool缓冲池详解
Innodb 存储引擎设计了一个缓冲池(,来提高数据库的读写性能。Buffer Pool 以页为单位缓冲数据,可以通过参数调整缓冲池的大小,默认是 128 M。Free List (空闲页链表),管理空闲页;Flush List (脏页链表),管理脏页;LRU List,管理脏页+干净页,将最近且经常查询的数据缓存在其中,而不常查询的数据就淘汰出去。;将 LRU 链表 分为young 和 old 两个区域,加入缓冲池的页,优先插入 old 区域;
2024-10-31 10:58:51 838
原创 算法——python实现堆排序
python有一个内置的推排序模块,(在构建堆的时候,构建的是小根堆)若有错误与不足请指出,关注DPT一起进步吧!构造堆:从最后一个非叶子节点开始调整。关于二叉树的操作,其实核心就是。
2024-10-15 15:46:26 762
原创 Marshmallow——python中一个轻量级的数据格式转换的模块
官方文档:https://marshmallow.readthedocs.io/en/latest/Marshmallow,中文译作:棉花糖。是一个轻量级的数据格式转换的模块,也叫序列化和反序列化模块,常用于将复杂的orm模型对象与python原生数据类型之间相互转换。marshmallow提供了丰富的api功能。序列化[可以把数据对象转化为可存储或可传输的数据类型,例如:objects/object->list/dict,dict/list->string]
2024-10-13 12:41:29 808
原创 grpc的python使用
远程过程调用,是一种计算机通信协议,允许一个程序(客户端)通过网络向另一个程序(服务器)请求服务,而无需了解底层网络技术的细节。RPC协议抽象了网络通信的复杂性,使得开发者可以像调用本地函数一样调用远程服务器上的函数。RPC 框架负责屏蔽底层的传输方式(TCP 或者 UDP)、序列化方式(XML/Json/ 二进制)和通信细节,服务调用者可以像调用本地接口一样调用远程的服务提供者,而不需要关心底层通信细节和调用过程。
2024-10-12 17:50:11 680
原创 当Windows中已经下载了Mysql,MongoDb,Redis,WSL中下载必坑指南
建议根据官方先下载:https://www.mongodb.com/zh-cn/docs/manual/tutorial/install-mongodb-on-ubuntu/当在windows中安装并正在运行时,默认的端口好会被占用。如果wsl中的mongod启动状态,那么windows中也可以通过指定端口号连接。连接,会直接连接到windows下的mongod。若有错误与不足请指出,关注DPT一起进步吧!同理,是因为默认端口被占用,改变端口号即可。此时,应该会报错,就是由于端口被占用。
2024-10-11 19:56:41 781
原创 Ubuntu18.04 dpkg: 处理软件包 mysql-server-5.7 (--configure)时出错:子进程 已安装 post-installation 脚本 返回错误状态 1
上边第一条,会删掉挺多东西的,不建议运行,第二条说是卸载apparmor,不过apparmor是用来权限管理的,经查询也跟我的问题无关,想对apparmor进一步了解的,可以跳转。来查看是否卸载完全,若无输出则已卸载干净,而后重新安装mysql,悲催的是,我还是遇到了同样的问题,于是继续折腾,来到方法三。,我运行后还是同样的问题,在类似的博客评论下,看到有人说该条命令不建议运行,我运行倒是挺快的,也没出啥意外。方法二中,理论上来讲,已经把原有的MYSQL全部清理干净了,但是在我广泛撒网时,
2024-10-11 17:13:57 320
原创 鹦鸣app——服务端项目搭建
在项目运行时,框架本身会不断记录代码程序运行的日志错误,但是我们将来编写的业务逻辑也可能存在抛出异常的情况,这些异常和框架代码本身无关,如果都混在一起的话,对于找出错误,是没有帮助的。有了蓝图以后,接下来我们就可以把视图代码,模型代码,路由代码等存储到蓝图目录下了,但是我们需要把蓝图注册到app应用对象下,想想以后,是不是会出现很多的蓝图?所以暂时我们先进行pymongo的初始化。可以的,我们也可以封装注册蓝图的功能到一个函数中,让项目自动识别并注册蓝图,并自动加载蓝图下的所有内容。
2024-10-11 15:07:19 929
原创 WSL(Windows Subsystem for Linux)——简单的双系统开发
本人由于在开发中需要linux环境,同时还想要直接在Windows下开发,来提升开发效率,随即简单学习WSL。WSL(Windows Subsystem for Linux)是微软开发的一项技术,
2024-10-09 11:08:58 1925
原创 mongodb集群
分片键(Shard Key): 首先,你需要选择一个分片键,这通常是文档中的一个字段或多个字段的组合。分片键用于确定文档应该存储在哪个分片上。数据分裂(Splitting): 当文档被插入到一个分片中时,如果该分片上的数据量达到一定阈值(由chunkSize控制),那么这个分片就会被分裂成两个或更多的新分片。数据迁移(Migration): 分片集群中的平衡器(balancer)会监控数据分布,并自动将分片从一个分片移动到另一个分片,以保持数据的均衡分布。
2024-10-08 12:28:38 1437
原创 python操作mongodb
在python当中,一般常用于开发中操作monoDB的模块无非三个:pymongo, mongoengine(相当于mysql中的sqlalchemy), moter。moter是python中基于pymongo实现的异步操作库,类似于aiomysql,aiomysql也是python基于pymysql实现的异步库。若有错误与不足请指出,关注DPT一起进步吧!
2024-10-08 09:43:25 457
原创 MongoDB基础
MongoDB 是由C++语言编写并基于分布式文件存储的开源数据库,属于NOSQL。MongoDB 是一款介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的NOSQL数据库。它面向文档存储,而且安装和操作起来都比较简单和容易,而且它支持各种流行编程语言进行操作,如Python,Node.js,Java,C++,PHP,C#等。目前在大数据、内容管理、持续交付、移动应用、社交应用、用户数据管理、数据中心等领域皆有广泛被使用。
2024-10-07 20:36:12 1340
原创 Flask-3
ORM 全拼,中文意为 对象-关系映射。主要实现模型对象到关系数据库数据的映射。ORM提供了一种面向对象操作数据库的方式给开发者。不需要编写原生SQL语句也能操作数据库,实现了业务代码与底层数据的解耦。优点:缺点:flask默认不提供模型操作,但是并没有提供ORM,所以一般开发的时候我们会采用flask-SQLAlchemy模块来实现ORM操作。SQLAlchemy是一个python语言编写的高性能的关系型数据库ORM框架,它提供了高层的 ORM 和底层的原生数据库的操作。我们使用sqlalchemy 不需
2024-10-03 11:41:10 1950
原创 Flask-2
Flask-Script 还可以为当前应用程序添加脚本命令1. 引入Command命令基类2. 创建命令类必须直接或间接继承Command,并在内部实现run方法或者__call__()方法,同时如果有自定义的其他参数,则必须实现get_options方法或者option_list属性3. 使用flask_script应用对象manage.add_command对命令类进行注册,并设置调用终端别名。# 配置})"""使用flask_script启动项目"""
2024-09-30 15:50:42 1317
原创 Flask-1
路由和视图的名称必须全局唯一,不能出现重复,否则报错。# 1. 导入flask核心类# 2. 初始化web应用程序的实例对象# 开启debug模式# 参数1:rule设置当前视图的路由地址# 参数2:methods,设置当前视图的HTTP请求方法,允许一个或多个方法,不区分大小写# 3. 运行flask提供的测试web服务器程序什么是路由?路由就是一种映射关系。是绑定应用程序(视图)和url地址的一种一对一的映射关系!
2024-09-29 16:54:38 1685
原创 nginx基本介绍和配置说明
nginx是一个开源免费的,高性能,高并发的web服务和代理服务软件。它是俄罗斯人lgor sysoev(伊戈尔·塞索耶夫)在2000开发的,在2004年将源代码开源出来供全球使用。nginx比传统的web服务器apache性能改进了许多,nginx占用的系统资源更少,支持更高的并发连接,有更高的访问效率。nginx不但是一个优秀的web服务软件,还可以作为反向代理负载均衡,以及缓存服务使用。
2024-09-26 17:39:01 346
原创 集成Elasticsearch到django restful
haystack支持多种搜索引擎,不仅仅是 jieba ,whoosh,使用solr、elasticsearch等搜索,也可通过haystack,而且直接切换引擎即可,甚至无需修改搜索代码。因为此前mysql中已经有了部分的数据,而这部分数据在es中是没有创建索引。注意:course_text.txt 中course就是ORM模型类名小写,text就是es索引模型类中的全文索引字段名。创建全文索引字段的html模板,在HTML模板中采用django的模板语法,绑定text与其他es单字段索引的映射关系。
2024-09-25 18:22:46 1551
原创 Elasticsearch快速入门
倒排索引(Inverted Index),是Elasticsearch中的索引工作机制。Elasticsearch的工作流程如下,因为使用倒排索引产生的文档记录要比mysql数据行少多了,所以会比较快。Elasticsearch是面向文档的,以json格式存储数据的NoSQL数据库,也是一个全文搜索引擎。es提供了retfulAPI风格操作接口给开发者对索引、类型、文档、字段、映射等进行增删查改操作。注意:es中的类型在es7.x版本中已经没有,在后面的8.x版本中被彻底删除掉。PUT / 索引名称。
2024-09-25 16:54:34 988
原创 Elasticsearch、ik分词器、elasticsearch-head、Kibana的认识与安装
不过开发中,我们一般使用elasticsearch-head来查看elasticsearch的数据而已,真正对elasticsearch进行增删查改操作一般我们使用kibana或者postman或者编程语言实现的客户端来完成。默认情况下,elasticsearch是外国开发的,所以本身对于中文分词构建分词索引的支持是不行的。访问elasticsearch-head:http://127.0.0.1:9100/,会发现无法连接elasticsearch,原因是因为跨域问题导致。
2024-09-24 22:29:40 1136
原创 配置Docker镜像加速器
通过修改daemon配置文件/etc/docker/daemon.json来使用加速器。上面是阿里云官方给出的镜像源,但最近大家无法使用。若有错误与不足请指出,关注DPT一起进步吧!改为daocloud源即可,
2024-09-24 20:50:16 465
原创 初始docker以及docker的基本使用!!!
(注意:如果运行容器时,本地没有对应的镜像或对应镜像的版本,则docker/podman会自动往线上的源服务器中搜索是否有对应的镜像并自动下载的,执行pull镜像操作)。–restart=always 设置容器随着docker开机自启,docker/podman中创建的容器默认是不会开机自启,同时podman是没有这个选项的。-p 端口影射,把物理机的一个端口和容器内部的端口进行绑定。必须先有镜像,才能运行创建容器,需要指定使用的镜像名,并且设置创建容器以后,执行对应的第一条命令。
2024-09-23 20:31:37 1829
原创 chapter5-课程管理模块实现(课程列表)
views/Course.vue,代码:注册路由,src/router/index.js,代码:课程功能管理的设计分析课程列表页面中的出现的数据之间的关系E-R图http://draw.ioE-R图描述的是数据库设计过程中,实体与实体之间的关系的,实体与属性之间的关联的。矩形表示实体,所谓的实体就是可以相互区分的,独立的事物。实体在数据库中会被转换成数据表。椭圆形表示属性,用于描述实体的特征。实体的属性在数据库中会被转换成数据表中的字段。菱形则表示实体之间的关系,根据范式理论第三条,实体之间的关
2024-09-23 12:10:34 2345
原创 django项目——图片上传到阿里云OSS对象存储
阿里云OSS云存储OSS_ENDPOINT = "oss-cn-beijing.aliyuncs.com" # 访问域名, 根据服务器上的实际配置修改OSS_BUCKET_NAME = "luffycityoline" # oss 创建的 BUCKET 名称# 添加下面配置后 Django admin 后台上传的 ImageField, FileField 类型的字段都会被自动上传到 oss 的服务器中, 访问路径也会自动替换。
2024-09-22 20:28:27 570
原创 django项目添加测试数据的三种方式
文档:https://docs.djangoproject.com/zh-hans/3.2/howto/custom-management-commands/在子应用目录下添加一个包目录,然后这个commands里面处理以外其他文件的文件名将作为django-admin或者python manage.py的命令选项了。注意:文件名不能以_开头,否则不会被识别为命令。接着我们可以在commands包下根据自己的业务需要,编写对应的命令。
2024-09-21 20:06:54 1631
原创 chapter3-基于jwt的分布式认证流程
接下来,因为是新开发一个功能模块,那么我们可以在新的分支下进行开发,将来方便对这部分代码进行单独管理,等开发完成了以后再合并分支到develop也是可以的。前端显示登陆页面登录页组件components/Login.vuecomponents/Header.vue,代码:views/Login.vue,代码:绑定登陆页面路由地址src/router/index.js,代码:后端实现登陆认证Django默认已经提供了认证系统Auth模块。认证系统包含:Django默认用户的认证机制依赖
2024-09-20 22:01:06 2079
原创 异步处理框架——celery
它能够接手那些需要花费很长时间才能完成的任务,比如处理大量数据或者发送邮件,然后让这些任务在后台慢慢执行。Celery 可以通过多种消息代理(如 RabbitMQ 和 Redis)来管理和分发任务,并且可以轻松地在多个工作节点上水平扩展,以处理大规模的实时任务执行。此外,Celery 还提供了丰富的配置选项和扩展机制,使其能够适应各种不同的应用场景和需求。Celery 是一个开源的分布式任务队列系统,它允许开发者将耗时的任务异步化,从而提高应用程序的响应速度和可扩展性。celery的进阶使用。
2024-09-20 15:20:42 419
原创 chapter2-站点首页功能实现
导航数据的存储,必须要找出导航数据的结构,也就是有哪些属性?导航位置、导航名称、导航链接、导航序号、是否显示、是否外链、添加时间、更新时间、是否删除。
2024-09-17 18:56:53 1905
原创 Django REST framework 实现缓存机制以优化性能
页面首页中,导航菜单或轮播广告在项目中每一个页面都会被用户频繁访问到,所以我们可以实现缓存,减少MySQL数据库的查询压力,使用内存缓存可以加快数据查询速度。
2024-09-14 17:35:17 1044
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人