- 博客(93)
- 收藏
- 关注
原创 Python测试框架如何处理重载_在pytest中使用mocker控制调用
pytest中mock重载方法不生效,是因为@overload仅用于类型提示,运行时只存在未标注@overload的实现函数,mock必须针对该真实函数而非重载签名。pytest里mock重载方法为什么总不生效因为Python的重载(overload)只是类型提示层面的声明,运行时并不存在多个同名函数实体。@overload装饰的函数不会被实际执行,真正运行的是后面那个未加@overload的实现函数。实操建议:立即学习“Python免费学习笔记(深入)”;
2026-05-18 22:56:13
202
原创 golang如何从Python转型Go开发_golang从Python转型Go开发攻略
Python开发者写Go时最常写的错代码长什么样不是语法报错,而是运行时 panic 或逻辑诡异——比如用 range 遍历切片时直接改 item 却发现原切片没变,或者把 map[string]interface{} 当成 Python 的 dict 无脑嵌套取值,结果遇到 panic: interface conversion: interface {} is nil, not map[string]interface{}。item 是副本,map 的 value 是接口,nil 检查必须手动做。
2026-05-17 19:35:52
222
原创 如何检测受保护链接(如 Twitter)的可访问性
本文介绍在 python 中检测本地文档中受保护链接(如需登录、验证码或反爬机制的网站)是否可正常解析的实用方案,重点通过模拟真实浏览器请求头绕过基础防护,并说明其局限性与安全边界。本文介绍在 python 中检测本地文档中受保护链接(如需登录、验证码或反爬机制的网站)是否可正常解析的实用方案,重点通过模拟真实浏览器请求头绕过基础防护,并说明其局限性与安全边界。最轻量且合规的改进方式是模拟真实浏览器请求头,而非尝试登录或破解验证逻辑。
2026-05-17 19:33:42
191
原创 宝塔面板安装后无法访问8888端口_配置防火墙与安全组规则
宝塔实际监听端口需通过cat /www/server/panel/data/port.pl确认,而非默认8888;须同步检查本地防火墙(firewalld/ufw)和云平台安全组入方向规则,并用telnet或nc验证端口连通性。确认宝塔实际监听端口是不是8888很多人一上来就猛改防火墙,结果发现面板压根没在 8888 上监听——它可能被安装脚本随机改了,也可能初始化失败后 fallback 到别的端口。只开安全组、不开本地防火墙,照样连不上。哪怕你本地防火墙全放开,安全组没配,请求根本进不来。
2026-05-16 00:22:05
196
原创 mysql如何通过索引减少行锁范围_mysql索引与加锁逻辑
WHERE 条件没走索引,全表扫描就等于全表加锁MySQL 的行锁(比如 UPDATE 或 SELECT ... FOR UPDATE)不是按“行”加的,而是按“索引记录”加的。如果 WHERE 条件无法命中索引,InnoDB 只能走聚簇索引全扫描——这时每条记录都会被加上临键锁(next-key lock),锁住整个范围,甚至可能升级为表锁。但如果 id 是普通索引(哪怕有唯一约束但没定义为 UNIQUE),就会加临键锁(next-key lock),锁住该值前后的间隙。
2026-05-16 00:19:47
232
原创 Django REST Framework 中实现用户资料更新的完整实践指南
本文详解如何在 drf 中正确实现基于 token 认证的用户资料(如 first_name)更新功能,涵盖序列化器逻辑修正、视图层数据绑定、权限与认证配置,并指出原始代码中 create() 方法误用、request.auth 访问时机错误等关键问题。本文详解如何在 drf 中正确实现基于 token 认证的用户资料(如 first_name)更新功能,涵盖序列化器逻辑修正、视图层数据绑定、权限与认证配置,并指出原始代码中 create() 方法误用、request.auth 访问时机错误等关键问题。
2026-05-16 00:17:28
240
原创 CSS如何兼容新旧方案结合响应式容器查询
必须在直接父容器上设置 container-type: inline-size(最常用)或 container-type: size(需同时设宽高)不能靠继承,也不能设在 body 或远祖元素上——只对**最近的、有 container-type 的祖先**生效如果父容器是 flex/grid 项,注意它可能被压缩到 0 宽,导致 inline-size 查询始终为 0container-name 是可选的,但多人协作时建议命名,避免不同组件的容器查询互相干扰旧版媒体查询和新版容器查询混用时,谁优先?
2026-05-15 22:52:46
173
原创 Golang怎么安装和配置开发环境_Golang环境搭建完整教程【总结】
Go环境无需传统IDE,只需装好go命令、配置PATH(macOS/Linux检查which go或修改shell配置,Windows检查PowerShell的Get-Command go及系统环境变量),启用模块模式(go env -w GO111MODULE=on)、清理vendor/和避免GOPATH/src路径干扰,再配好VS Code的gopls(确保go可用、有go.mod、文件后缀正确)。它依赖 go 命令本身可用,且项目结构合规。
2026-05-15 22:51:34
207
原创 Less如何处理CSS长文本换行_封装Mixin解决不同场景需求
overflow-wrap: break-word:仅当整词长度 > 容器宽度时,才在词内断开(适合中英文混排标题)word-break: break-all:无视词边界,按字符切(适合显示日志、base64、长 token)URL 场景建议用 overflow-wrap: break-word + hyphens: auto(仅现代浏览器),比 break-all 更友好Less 中用参数控制换行策略,避免重复写样式硬编码多个 class 太冗余,用 Less 参数 mixin 能把逻辑收拢。
2026-05-15 22:50:23
229
原创 HTML5中SharedWorker生命周期与浏览器进程关闭的关系
一旦浏览器进程关闭(如整个浏览器退出),SharedWorker 会立即终止,无法持久化或跨会话存活。浏览器进程关闭时的行为SharedWorker 运行在浏览器为该源单独分配的共享工作线程进程中(非渲染进程,也非主线程),但它仍隶属于浏览器主进程的资源调度体系:当用户完全退出浏览器(如关闭 Chrome 所有窗口、macOS 上 Quit Chrome、Windows 上结束 chrome.exe 进程),SharedWorker 所在的 worker 进程会被强制终止;
2026-05-15 22:49:12
155
原创 Redis如何限制列表最大长度_利用LTRIM指令截断List保留最新记录
LTRIM 是原子操作,不会出现“push 之后、trim 之前”被其他客户端读到超长状态它只保留指定索引范围内的元素,其余立即释放内存,不触发延迟回收索引支持负数:0 表示第一个(最老),-1 表示最后一个(最新),所以保留最新 100 条就是 LTRIM key -100 -1LTRIM 参数写错会导致整个 List 被清空这是最常踩的坑:LTRIM key start stop 要求 start ≤ stop,且索引必须在当前 List 实际范围内。
2026-05-15 22:47:59
174
原创 CSS如何实现元素镜像翻转_使用transformscalex负值
scroll-behavior: smooth 为什么加了没反应最常见原因是没加在正确容器上——scroll-behavior 必须作用于滚动容器,通常是 html 或 body,但浏览器对 body 的支持不一致,直接写在 html 上才最稳。注意:该属性不继承,父容器设了,子 div 滚动仍不平滑,需单独设置?解决方法不是 JS 计算偏移,而是用 CSS 的 scroll-margin-top 给目标元素“留白”:h2[id] { scroll-margin-top: 60px;
2026-05-13 20:05:43
164
原创 如何实现元素从底部进入视口时触发 sticky 定位
本文详解如何利用 css `position: sticky` 实现“底部触底即吸附”的效果,即当元素的**底部边缘首次进入视口底部区域**时开始固定,而非默认的顶部吸附;此时,单纯设置 bottom: 0 并不能直接生效——因为 sticky 元素的吸附起点由其在流式布局中的自然位置决定,若元素默认位于容器顶部,则 bottom: 0 无法触发吸附逻辑。对 .child 元素设置 margin-top: auto —— 利用 Flex 的自动外边距特性,将其“挤”到父容器底部;
2026-05-13 20:04:29
152
原创 PHP 中 end() 函数如何改变数组内部指针并影响后续遍历操作
end() 并不修改数组元素本身,而是将 PHP 数组的内部指针移动到末尾位置,从而影响 key()、current()、next() 等依赖指针的函数行为;`end()` 并不修改数组元素本身,而是将 php 数组的**内部指针**移动到末尾位置,从而影响 `key()`、`current()`、`next()` 等依赖指针的函数行为;该指针是数组的隐式状态,独立于数组值本身,它决定了 current()、key()、next()、prev()、reset() 和 end() 等函数的返回结果。
2026-05-13 20:03:14
207
原创 CSS如何利用Sass实现透明度动态化_通过函数计算CSS颜色值
传给 rgba() 的第一个参数必须是 Sass color 类型,不是字符串alpha 推荐用小数(如 0.8),别用百分比(80% 会被当作无效单位)IE9+ 支持 rgba(),不需要 fallback;和 rgba() 不同,它们作用于整个颜色通道,不只是 alpha 层叠——比如对 #ff0000 调用 transparentize(#ff0000, 0.3),结果是 rgba(255, 0, 0, 0.7),而 opacify() 是反向增强不透明度。立即学习“前端免费学习笔记(深入)”;
2026-05-13 20:02:00
174
原创 检测三位随机数中重复数字的Python实现方法
本文教你如何检查python生成的三位随机数(如122、333)中是否存在重复数字,并根据重复数量(两个相同或三个全同)返回对应倍率,适用于游戏开发中的奖励逻辑。本文教你如何检查python生成的三位随机数(如122、333)中是否存在重复数字,并根据重复数量(两个相同或三个全同)返回对应倍率,适用于游戏开发中的奖励逻辑。在游戏开发中,常需基于随机生成的数字(例如三位数彩蛋码、转盘结果或骰子组合)设计奖励机制:若数字含重复位(如 227 含两个 2),则给予 2 倍积分;统计每个数字出现的次数;
2026-05-13 20:00:45
174
原创 SQL如何利用聚合函数进行库存预测_历史数据分组汇总
用GROUP BY配合SUM()和AVG()做库存趋势汇总时,须按业务实际分组、过滤无效订单、限定90天时间范围、按SKU而非SPU分组、对齐补货周期的时间粒度,并严格WHERE过滤quantity>0等异常值。关键不是“能不能算”,而是分组维度是否贴合业务实际。PostgreSQL 用 DATE_TRUNC('day', order_time),MySQL 用 DATE_FORMAT(order_time, '%Y-%m-%d'),目的都是把订单压到可比的时间桶里。
2026-05-11 21:32:42
209
原创 SQL注入的安全架构设计_将数据库置于内网隔离区
数据库放内网隔离区,只是SQL注入防护的起点,不是终点。单靠网络隔离无法阻止应用层注入——只要应用代码里拼接了用户输入,攻击者就能通过合法接口(比如登录、搜索)把恶意SQL送进去,内网数据库照常执行。为什么mysqli_real_escape_string不能代替参数化查询它只做字符转义,不改变SQL语法结构。遇到宽字节编码(如gbk)、多字节字符集边界、或MySQL旧版本的sql_mode宽松设置时,转义可能被绕过。更关键的是:它要求开发者手动调用、且必须匹配当前连接的字符集,漏一处就全盘失效。
2026-05-11 21:31:30
156
原创 如何处理ORA-01152报错_恢复未完成导致的数据文件仍需介质恢复
常见触发场景包括:用旧备份的控制文件 + 新备份的数据文件做异机恢复RMAN 备份时 SKIP INACCESSIBLE 或排除了 SYSTEM 表空间,导致恢复后控制文件和部分数据文件 SCN 脱节手动重建控制文件但漏写了某个数据文件,或没同步归档日志路径时间点恢复(UNTIL TIME)目标早于数据文件最后一次 checkpoint 时间确认 SCN 差异:绕过控制文件直读数据文件头别信 v$datafile,它受控于当前控制文件。关键点:归档日志必须存在且可访问;
2026-05-11 21:30:17
185
原创 如何在UI中高亮显示近三天更新过的数据行_时间差高亮规则
row-class-name 函数接收 { row, rowIndex } 参数,只在表格重渲染时触发,适合做轻量级判断别用 moment.js 或 dayjs 做全量解析——如果只是比三天,new Date().getTime() - new Date(row.updatedAt).getTime() 足够,零依赖、无兼容风险时间字段为空、格式非法(如 "2026-03-20" 或 "2026/03/20 14:30")会导致 NaN,需加兜底:if (!
2026-05-11 21:29:04
166
原创 HTML能写样式吗_style属性与内联样式风险【解答】
HTML中写style属性算“写样式”,但仅是优先级最高的一次性内联覆盖,无法支持伪类、媒体查询、CSS变量及动画,且难维护、易冲突、触发重排,适用场景仅限JS实时计算或SSR动态状态。important),但它无法声明伪类、媒体查询、自定义属性,也不能用@keyframes性能影响:每次修改style属性都会触发重排(reflow),比切换class频繁操作更重style属性和<style>标签的区别在哪根本不是同一类东西:style是HTML元素的属性,属于DOM层面的运行时值;
2026-05-11 21:27:51
232
原创 WooCommerce 多渠道联盟链接动态追加教程
以下是一个健壮、可扩展的实现方案,使用 woocommerce_product_add_to_cart_url 过滤器,在不修改主题模板的前提下完成智能参数拼接:add_filter( 'woocommerce_product_add_to_cart_url', 'custom_product_add_to_cart_url', 20, 2 );== false )?
2026-05-08 21:41:47
193
原创 mysql如何转换MyISAM表到InnoDB_使用ALTER TABLE语句方法
MySQL 5.7/8.0 下,ALTER TABLE t ENGINE=InnoDB 默认触发表拷贝,期间原表只读(DML 不可用)如果表有 10GB,转换可能持续数分钟到几十分钟,业务高峰期务必避开磁盘空间需额外预留 ≥ 原表大小(临时文件 + 新表)建议先在从库或低峰期测试,用 SHOW PROCESSLIST 观察状态是否卡在 copy to tmp table执行前必须检查的三个兼容性点MyISAM 和 InnoDB 行为差异大,直接改引擎可能让应用出错,不是语法通过就万事大吉。
2026-05-08 21:40:33
165
原创 golang如何实现图片水印批量添加_golang图片水印批量添加实现策略
文字水印模糊或偏移因image/draw不处理字体渲染,需用freetype生成位图并正确设置Size(单位1/64磅)、DPI及基线坐标;透明度失效因color.Model不匹配,须统一用image.NewNRGBA并显式设alpha;常见错误是把字体大小当像素值传入,实际 freetype.Face 的 Size 单位是「1/64 磅」,不除以 64 就会导致文字巨大或不可见。如果原图是 color.NRGBA64,水印图却是 color.RGBA,alpha 通道位宽不一致会导致混合异常;
2026-05-08 21:39:18
271
原创 如何清空SYSAUX表空间_AWR历史数据清理与诊断库清理
先查当前保留天数:SELECT retention FROM dba_hist_wr_control;禁止自行运行 catawr.sql 或重运行 awrrpti.sql 脚本,可能覆盖已有快照定义如果只是部分 WRH$_ 表缺失但 DBA_HIST_* 视图仍可查,说明物化视图未断裂,可暂不处理诊断库(DBA_HIST_DATABASE_INSTANCE)数据异常导致跨库比对失败诊断库中 DBA_HIST_DATABASE_INSTANCE 记录每个数据库实例的启动时间、DBID、版本等关键锚点信息。
2026-05-08 21:38:04
183
原创 CSS Flex布局中如何实现导航栏与Logo的左右分布_利用justify-content- space-between
实操建议:确认父容器(比如 <header>)必须有 display: flex,且没被其他样式覆盖(检查 computed styles)确保 Logo 和导航栏是同一级子元素——不能是 <header> > <div> > <img> + <header> > <nav> > <ul>,得是 <header> > <img> 和 <header> > <nav>如果用了语义化标签如 <nav>,它默认是 block,不影响;
2026-05-08 21:36:50
238
原创 宝塔面板如何设置网站访问密码_配置Nginx认证保护目录
用宝塔「访问限制」功能快速加锁目录这是最省事、也最不容易出错的方式,适合保护 /admin、/backup、/zixun/ 这类整条路径下的所有资源。它直接调用 Nginx 的 auth_basic 模块,不碰 PHP、不改代码,浏览器会弹原生认证框。不加就只匹配文件名,不保护子路径)用户名和密码随便填,宝塔自动处理加密,不用自己跑 htpasswd提交后立刻生效,但测试时务必用无痕窗口——浏览器会缓存凭据,改了密码也不弹框这个方式不支持正则或通配符,也不能对多个不同路径复用同一套账号;
2026-05-07 22:05:52
169
原创 mysql主键设计原则_InnoDB聚簇索引对性能的影响
主键必须是自增整数?一个 VARCHAR(64) 主键 → 所有 INDEX 的每条索引记录都多存 64 字节(甚至更多,含长度前缀)复合主键(如 (tenant_id, order_id))会让每个二级索引条目都带上这两个字段,极易突破 innodb_page_size 限制,触发额外 IO主键被外键引用时,子表索引也会继承全部主键列 —— 冗余放大效应非常明显主键更新等于全行重建,务必禁止InnoDB 中修改主键值,本质是删除旧行 + 插入新行:聚簇索引要挪动数据,所有二级索引都要同步更新指针。
2026-05-07 22:04:07
194
原创 如何监控表空间自动扩展_DBA_DATA_FILES中的MAXBYTES分析
重点盯 AUTOEXTENSIBLE = 'YES' 且 CAN_EXTEND_MB > 0 的行如果 FREE_MB 接近 0,说明即使文件能扩,也没新 extent 可分配(碎片或高水位堵住了)注意:DBA_FREE_SPACE 不包含临时表空间,查 temp 要用 V$TEMP_SPACE_HEADERMAXBYTES 设成 UNLIMITED 真的安全吗?Oracle 把 UNLIMITED 解析为 2^63-1 字节(约 8EB),但操作系统、文件系统、存储阵列早就在中间拦住了。
2026-05-07 22:02:26
237
原创 JavaScript中类 Class 语法的可读性与维护性优势
constructor() 集中声明初始化行为,避免分散在函数体各处 static 关键字直白标出工具方法或类级别状态,无需靠命名约定(如 Utils.create())暗示 方法定义天然属于实例作用域,消除了 this 绑定歧义带来的阅读负担继承表达更接近自然语言extends + super() 的组合比 Parent.call(this) + Object.setPrototypeOf(Child.prototype, Parent.prototype) 更贴近“子类继承父类”的直觉描述。
2026-05-07 22:00:39
490
原创 如何查询SQL中特定字段为空的记录_掌握IS NULL用法
如果查询频次高、数据量大,考虑加一个计算字段或触发器,把 IS NULL 转成可索引的布尔值,比如 email_is_null BOOLEAN GENERATED ALWAYS AS (email IS NULL) STOREDLEFT JOIN 后的字段 IS NULL 判断常被误用这是最易出错的场景:想查“没关联上的记录”,但写了 WHERE right_table.id IS NULL 却放在了 ON 条件里,或者漏了 LEFT JOIN 直接写 JOIN。
2026-05-07 21:58:53
196
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅