自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MongoDB数据库通过迭代游标的方式大批量处理数据

【摘要】游标是数据库查询结果的指针,支持逐批获取数据而非一次性加载,特别适合处理海量数据。本文介绍了基于Python的MongoDB游标实现方案,通过批量查询、更新和插入操作,有效解决大数据处理中的内存瓶颈问题。核心功能包括:1)游标迭代查询(支持自定义批次大小和超时设置);2)批量更新处理器(可配置更新批次大小);3)生成器流式插入(避免内存溢出)。方案采用性能监控和异常处理机制,推荐批次大小为500-5000条,支持数百万级数据处理,实现了真正内存友好的大批量操作。

2025-09-23 20:04:14 235

原创 Linux中git使用及工作流程

本文介绍了Git工作流的基本操作步骤:1.创建开发分支(git checkout -b);2.修改代码后暂存(git add)和提交(git commit);3.推送前拉取最新代码避免冲突(git pull);4.推送分支(git push)并建立跟踪关系;5.创建PR合并到主分支;6.分支删除流程(先远程后本地);7.分支查看命令。重点说明了推送命令的区别:带--set-upstream参数会建立永久关联,简化后续操作。适用于需要持续开发的分支场景,而非临时推送。

2025-09-23 11:43:27 1497

原创 Redis

核心网络模型是单线程的(新版本引入了多线程处理网络 I/O 等,但核心命令执行仍是单线程),避免了多线程的上下文切换和竞争条件,保证了原子性操作,非常简单高效。:通过 Redis Sentinel(哨兵)实现高可用,通过 Redis Cluster(集群)实现数据分片和分布式存储。:使用简单的 key-value 形式存储数据,但 Value 不仅仅是字符串,还支持丰富的数据结构。:如上所述,一招鲜吃遍天,各种场景都能找到合适的数据结构。:所有操作都是原子性的,无需担心并发问题。:内存访问速度远超磁盘。

2025-09-12 17:20:30 477

原创 Flask

Flask 是一个用 Python 编写的轻量级 Web 应用框架。它被称为“微框架”,但这并不意味着它的功能弱小,而是指其核心非常简洁,只提供了构建 Web 应用最基本的功能(如路由、请求/响应处理)。其他高级功能(如数据库抽象、表单验证、用户认证等)则可以通过丰富的扩展来实现。哲学:给予开发者最大的灵活性和选择权。“微”意味着可定制性强,你可以按需组合组件,而不是被框架的设计所束缚。特性描述核心极其轻量、灵活、易学设计哲学“微”核心 + 扩展,给予开发者最大自由适合场景。

2025-09-12 16:42:54 526

原创 Django REST Framework

Django REST Framework (DRF) 是Django的Web API工具包,提供序列化、视图、认证等完整解决方案。其核心优势包括强大的序列化器、丰富的类视图、可浏览API界面及灵活的权限控制。DRF工作流程围绕序列化器(处理数据转换)、视图(提供多种编写方式)和路由(自动生成URL配置)展开。典型开发步骤:安装DRF、定义模型、创建序列化器、编写视图集并配置路由。通过ModelViewSet可快速实现标准CRUD接口,生成的API自带可交互Web界面,极大提升开发效率。

2025-09-12 16:33:15 1319

原创 Django ORM 模型

ORM(对象关系映射)是一种连接面向对象编程与关系数据库的技术,通过在对象与数据库间建立映射关系,实现数据的自动持久化。它简化了数据库操作,开发者只需操作对象而无需编写SQL语句,提高了开发效率。ORM实现了数据模型与数据库的解耦,便于更换数据库。但其缺点是会降低执行效率,且无法处理复杂查询。ORM是解决重复性工作的有效工具,但特殊场景仍需特殊处理。合理使用ORM能提升开发效率,但不应完全依赖。

2025-09-12 16:20:21 307

原创 事务的隔离级别

数据库隔离级别用于解决并发事务导致的数据一致性问题。主要问题包括脏读(读取未提交数据)、不可重复读(同一事务内读取结果不一致)和幻读(结果集行数变化)。SQL标准定义了四种隔离级别:读未提交(允许所有问题,性能最高)、读已提交(避免脏读)、可重复读(避免脏读和不可重复读,MySQL默认级别)和可串行化(完全隔离,性能最低)。隔离级别越高,数据一致性越强,但并发性能越低,需根据业务场景权衡选择。

2025-09-12 15:59:36 548

原创 Python中的面向对象编程

本文介绍了面向对象编程的三大核心特性。1)封装:通过绑定属性和方法并隐藏实现细节,提高安全性和可维护性;2)继承:实现代码复用,子类可继承或重写父类特性;3)多态:同一方法在不同类中有不同实现,Python的"鸭子类型"使其更灵活,不依赖继承关系,只需对象具备相同方法即可。这些特性共同提高了代码的复用性、扩展性和灵活性。

2025-09-10 15:16:14 130

原创 Django中间件和它的执行顺序

Django中间件详解 摘要:Django中间件是处理请求和响应的框架级钩子,包含五个核心方法:process_request、process_view、process_template_response、process_exception和process_response。中间件执行遵循特定流程:请求时按注册顺序执行process_request;视图处理前执行process_view;响应时倒序执行process_response。其中process_request和process_response最为

2025-09-09 09:35:03 765

原创 RESTful API设计规范

REST API设计核心要点:以资源为中心,使用名词复数形式URI(如/users),通过标准HTTP方法(GET/POST/PUT/DELETE)操作资源。遵循HTTP状态码规范,采用JSON格式交互,必须实现分页过滤功能。API需版本控制(建议URI路径方式),并强制使用HTTPS。关键设计原则包括:面向资源而非动作、幂等性保证、清晰的错误码体系,以及合理的数据返回结构。

2025-09-01 15:07:48 569

原创 Django中的FBV和CBV

Django视图开发主要有两种方式:函数视图(FBV)和类视图(CBV)。FBV使用Python函数处理请求,简单直观、控制灵活,但容易产生重复代码;CBV则通过类方法处理不同HTTP请求,提供内置通用视图和代码复用优势,但学习曲线较陡。FBV适合简单定制逻辑,而CBV更适用于标准化CRUD操作。开发者可根据项目需求选择:需要快速实现简单功能时用FBV,追求代码复用和结构化时用CBV。

2025-08-29 09:06:29 503

原创 MVC模式和MVT模式

本文比较了经典MVC模式与Django的MVT模式。MVC分为Model(数据处理)、View(界面展示)和Controller(请求处理)三层。Django的MVT模式中,Model功能相同,View类似MVC的Controller处理业务逻辑,Template对应MVC的View负责展示。MVT工作流程为:请求→URL路由→View处理→Model交互→Template渲染→响应。两种模式核心思想相似,主要区别在于组件命名和职责划分。

2025-08-28 13:50:18 318

原创 Python高频面试题2(附详细答案)

Flask是一个轻量级的Python Web框架,非常适合快速开发Web应用和API服务。

2025-08-26 15:05:44 1707

原创 python高频面试题1(附详细答案)

特点:迭代器是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。iter()和next()。__iter__():返回迭代器自己__next__():返回下一个元素,如果没有元素了就抛出StopIteration异常StopIteration 异常用于标识迭代的完成,防止出现无限循环的情况,在next() 方法中我们可以设置在完成指定循环次数后触发 StopIteration 异常来结束迭代。

2025-08-25 20:39:13 873

原创 Python 推导式

Python推导式是一种简洁高效的数据处理语法,支持列表、字典、集合和元组四种形式。列表推导式格式为[表达式 for变量 in序列 if条件],可快速生成新列表并过滤元素。字典推导式通过{键:值 for循环}结构创建字典,集合推导式使用{}生成不重复集合。元组推导式返回生成器对象,需用tuple()转换为元组。推导式能简化代码,但需注意保持可读性,避免过于复杂的表达式。典型应用包括数据转换、过滤和数学运算等场景。

2025-08-23 08:50:43 389

原创 七、Python程序中的进程操作

p.daemon:默认值为False,如果设为True,代表p为后台运行的守护进程,当p的父进程终止时, p也随之终止,并且设定为True后,p不能创建自己的新进程,必须在p.start()之前设置 守护进程:跟随着父进程的代码执行结束,守护进程就结束。p.terminate():强制终止进程p,不会进行任何清理操作,如果p创建了子进程,该子进程就成了僵尸进程, 使用该方法需要特别小心这种情况。p.run():进程启动时运行的方法,正是它去调用target指定的函数,我们自定义类的类中一定要实现该方 法。

2025-08-21 08:40:09 318

原创 事务的四大特性

事务的ACID特性详解:原子性确保操作全成功或全失败;一致性保证数据状态合法;隔离性通过锁/MVCC实现并发控制;持久性依靠日志机制确保数据永久保存。这些特性共同保障了数据库事务的可靠性。

2025-08-20 13:27:48 197

原创 什么叫进程

摘要:进程是程序执行的动态实体,是操作系统资源分配的基本单位,具有动态性、并发性、独立性和异步性等特征。进程由程序、数据和进程控制块组成,与静态的程序不同,进程具有生命周期。常见的进程调度算法包括先来先服务、短作业优先和时间片轮转法。多级反馈队列调度算法结合了时间片轮转和优先级调度的优点,通过动态调整优先级实现高效调度。进程状态包括就绪、运行、阻塞和挂起,而同步/异步与阻塞/非阻塞是描述程序等待消息时的不同方式,其中异步非阻塞形式效率最高。

2025-08-20 08:54:57 507

原创 什么是装饰器

def 外层函数(函数名): 该函数名等同于外层函数中的变量。增加业务装饰器逻辑1。return 内部函数名。#方式二:在待执行的函数上标明装饰器注释 @装饰器函数名。装饰器的功能 在不动源代码的前期下,增加业务。print("开启事务")print("结束事务")#方式一:外层函数(待执行函数名)()print("增加用户")print("删除用户")装饰器利用了闭包技术。

2025-08-19 09:00:12 397

原创 快速了解什么是闭包

闭包由嵌套函数、外部变量引用和返回内嵌函数三要素构成。示例中fun01()包含内嵌函数fun02(),fun02引用了外部变量name,fun01返回fun02形成闭包。调用fun01()()会执行fun02并输出"喜羊羊"。闭包必须满足三个条件:存在内嵌函数、引用外部变量、外部函数返回内嵌函数名。这种机制使得函数可以"记住"并访问创建时的环境变量。

2025-08-19 08:43:13 176

原创 什么是匿名函数(lambda)

Python中的lambda函数是一种简洁的匿名函数,用于简化代码。它通过"lambda 参数:表达式"的语法定义,支持多参数但仅能包含单个表达式。lambda常用于配合map()、filter()和reduce()等内置函数:map()对可迭代对象应用运算,filter()进行条件筛选,reduce()实现累积计算。例如计算平方(map)、筛选偶数(filter)、求乘积(reduce)。lambda函数特别适合需要临时简单函数的场景,能有效替代小型def定义函数,使代码更简洁高效。

2025-08-18 08:30:01 408

原创 什么是生成器

Python生成器是一种特殊的迭代器,通过yield关键字实现按需生成值而非一次性计算所有结果。生成器函数被调用时返回生成器对象,具有惰性计算、保持状态和可迭代特性。创建方式包括使用yield的生成器函数(如倒计时示例),调用后每次next()或迭代时从上次暂停处继续执行,适合处理大数据或无限序列。与普通迭代器相比,生成器实现更简洁,能有效节省内存。

2025-08-17 21:15:53 442

原创 Python迭代器

迭代器是访问集合元素的统一接口,具有惰性求值特性,仅在被访问时才计算元素。它通过__iter__()和__next__()方法实现,遍历时会记住当前位置且只能前进。当元素耗尽时抛出StopIteration异常。字符串、列表等内置类型以及生成器都是可迭代对象(Iterable),可通过iter()函数或自定义迭代器类转换为迭代器(Iterator)。自定义迭代器需实现上述两个方法,并用raise StopIteration终止迭代。通过collections.abc模块的isinstance()可检测对象的

2025-08-16 20:55:24 705

原创 列表元素去重问题

此时li2 = ['a', 'b', 'd', 'c', 'd']此时li2 = ['a', 'b', 'd', 'c', 'd']此时li2 = ['a', 'b', 'c', 'd']1.索引为0的'a'统计次数为1不进入if条件,此时li2 = ['a', 'b', 'c', 'd', 'c', 'd']2.索引为1的'b'统计次数为1不进入if条件,此时li2 = ['a', 'b', 'c', 'd', 'c', 'd']此时轮到索引为3的元素,而原来索引为3的'd'因为'c'的移除而变成了索。

2025-04-23 20:06:22 822

原创 python 逢七必过小游戏

所有人围坐成一圈,从某个玩家开始依次报数。- 报数时,每逢7的倍数(如7、14、21等)或者包含7的数字(如17、27、37等),玩家不能说出这个数字,而要喊“过”。- 如果有人报错数或者没有及时喊“过”,则要接受惩罚,通常是喝一杯酒或者表演一个节目。然后从报错数的玩家重新开始报数,继续游戏。这个游戏可以锻炼玩家的反应能力和注意力,同时在喝酒聚会等场合能增加欢乐氛围。1.能被七整除 2.被10地板除后结果为七 3.余数为7的数。一般建议3人及以上参与,人数越多越有趣。施加三种条件后得到的就是完美结果。

2025-04-14 21:26:46 752 1

空空如也

空空如也

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

TA关注的人

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