[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"public:announcements":3,"public:navigations:zh":4,"tag:detail:python:zh":56,"footer:categories:zh":63,"tag:posts:python:zh:1":184},[],[5,18,25,33,41,49],{"id":6,"title":7,"url":12,"icon":13,"parent_id":13,"location":14,"order":6,"is_active":15,"target_blank":16,"created_at":17,"updated_at":13},1,{"zh":8,"en":9,"ja":10,"zh_TW":11},"首页","Home","ホーム","首頁","\u002F",null,"header",true,false,"2026-09-30T18:09:54.251095Z",{"id":19,"title":20,"url":24,"icon":13,"parent_id":13,"location":14,"order":19,"is_active":15,"target_blank":16,"created_at":17,"updated_at":13},2,{"zh":21,"en":22,"ja":23,"zh_TW":21},"文章","Posts","記事","\u002Fposts",{"id":26,"title":27,"url":32,"icon":13,"parent_id":13,"location":14,"order":26,"is_active":15,"target_blank":16,"created_at":17,"updated_at":13},3,{"zh":28,"en":29,"ja":30,"zh_TW":31},"分类","Categories","カテゴリー","分類","\u002Fcategories",{"id":34,"title":35,"url":40,"icon":13,"parent_id":13,"location":14,"order":34,"is_active":15,"target_blank":16,"created_at":17,"updated_at":13},4,{"zh":36,"en":37,"ja":38,"zh_TW":39},"标签","Tags","タグ","標籤","\u002Ftags",{"id":42,"title":43,"url":48,"icon":13,"parent_id":13,"location":14,"order":42,"is_active":15,"target_blank":16,"created_at":17,"updated_at":13},5,{"zh":44,"en":45,"ja":46,"zh_TW":47},"关于","About","概要","關於","\u002Fpage\u002Fabout",{"id":50,"title":51,"url":55,"icon":13,"parent_id":13,"location":14,"order":50,"is_active":15,"target_blank":16,"created_at":17,"updated_at":13},6,{"zh":52,"en":53,"ja":54,"zh_TW":52},"留言板","Guestbook","ゲストブック","\u002Fpage\u002Fguestbook",{"id":6,"name":57,"slug":59,"color":60,"icon":13,"is_active":15,"created_at":61,"post_count":62},{"en":58,"ja":58,"zh":58,"zh_Hant":58},"Python","python","#3776ab","2026-09-30T18:09:53.663835Z",11,[64,80,94,109,124,140,155,169],{"id":6,"name":65,"slug":70,"description":71,"icon":76,"color":77,"cover_image":13,"created_at":78,"post_count":79},{"en":66,"ja":67,"zh":68,"zh_Hant":69},"Technology","テクノロジー","技术","技術","technology",{"en":72,"ja":73,"zh":74,"zh_Hant":75},"Cutting-edge technology exploration and in-depth analysis covering programming languages, frameworks, and architecture design","プログラミング言語、フレームワーク、アーキテクチャ設計を含む先端技術の探究","前沿技术探索与深度分析，涵盖编程语言、框架、架构设计等核心领域","前沿技術探索與深度分析，涵蓋編程語言、框架、架構設計等核心領域","heroicons:cog-6-tooth","#6366f1","2026-09-30T18:09:53.633610Z",8,{"id":19,"name":81,"slug":85,"description":86,"icon":91,"color":92,"cover_image":13,"created_at":93,"post_count":50},{"en":82,"ja":83,"zh":84,"zh_Hant":84},"Tutorial","チュートリアル","教程","tutorial",{"en":87,"ja":88,"zh":89,"zh_Hant":90},"Hands-on tutorials from scratch with clear steps and complete code for developers at all levels","ゼロから始める実践的なチュートリアル。明確な手順と完全なコードで、全てのレベルの開発者に最適","从零开始的实战教程，步骤清晰，代码完整，适合各阶段开发者学习","從零開始的實戰教程，步驟清晰，代碼完整，適合各階段開發者學習","heroicons:academic-cap","#10b981","2026-09-30T18:09:53.641581Z",{"id":26,"name":95,"slug":99,"description":100,"icon":105,"color":106,"cover_image":13,"created_at":107,"post_count":108},{"en":96,"ja":97,"zh":98,"zh_Hant":98},"Frontend","フロントエンド","前端","frontend",{"en":101,"ja":102,"zh":103,"zh_Hant":104},"Full coverage of web frontend development including Vue, React, new CSS features, and performance optimization","Vue、React、CSSの新機能やパフォーマンス最適化を含むWebフロントエンド開発の全領域","Web前端开发全栈覆盖，包括Vue、React、CSS新特性及性能优化等话题","Web前端開發全棧覆蓋，包括Vue、React、CSS新特性及性能優化等話題","heroicons:computer-desktop","#ec4899","2026-09-30T18:09:53.644838Z",7,{"id":34,"name":110,"slug":115,"description":116,"icon":121,"color":122,"cover_image":13,"created_at":123,"post_count":26},{"en":111,"ja":112,"zh":113,"zh_Hant":114},"Backend","バックエンド","后端","後端","backend",{"en":117,"ja":118,"zh":119,"zh_Hant":120},"Server-side development best practices including API design, database optimization, and microservices architecture","API設計、データベース最適化、マイクロサービスアーキテクチャを含むサーバーサイド開発の実践","服务端开发实战经验，API设计、数据库优化、微服务架构等深度内容","服務端開發實戰經驗，API設計、數據庫優化、微服務架構等深度內容","heroicons:server-stack","#f59e0b","2026-09-30T18:09:53.647836Z",{"id":42,"name":125,"slug":130,"description":131,"icon":136,"color":137,"cover_image":13,"created_at":138,"post_count":139},{"en":126,"ja":127,"zh":128,"zh_Hant":129},"Fullstack","フルスタック","全栈","全棧","fullstack",{"en":132,"ja":133,"zh":134,"zh_Hant":135},"End-to-end development guides covering the full project lifecycle and technology stack selection","フロントエンドからバックエンドまでの開発プロセス全体をカバーするガイド","从前端到后端的全流程开发指南，覆盖完整项目生命周期与技术选型","從前端到後端的全流程開發指南，覆蓋完整項目生命週期與技術選型","heroicons:swatch","#8b5cf6","2026-09-30T18:09:53.650513Z",0,{"id":50,"name":141,"slug":146,"description":147,"icon":152,"color":153,"cover_image":13,"created_at":154,"post_count":34},{"en":142,"ja":143,"zh":144,"zh_Hant":145},"Essays","エッセイ","随笔","隨筆","essays",{"en":148,"ja":149,"zh":150,"zh_Hant":151},"Technical reflections and development insights recording the programmer's growth journey","プログラマーの成長の軌跡を記録する技術的考察と開発の洞察","技术思考与开发心得分享，记录程序员成长路上的点滴感悟","技術思考與開發心得分享，記錄程序員成長路上的點滴感悟","heroicons:pencil-square","#f43f5e","2026-09-30T18:09:53.653105Z",{"id":108,"name":156,"slug":160,"description":161,"icon":166,"color":167,"cover_image":13,"created_at":168,"post_count":34},{"en":157,"ja":158,"zh":159,"zh_Hant":159},"Tools","ツール","工具","tools",{"en":162,"ja":163,"zh":164,"zh_Hant":165},"Development toolchain and productivity tool recommendations to supercharge your development experience","開発効率を飛躍的に向上させるツールチェーンと生産性ツールの推奨","开发工具链与效率提升利器推荐，让你的开发体验如虎添翼","開發工具鏈與效率提升利器推薦，讓你的開發體驗如虎添翼","heroicons:wrench-screwdriver","#06b6d4","2026-09-30T18:09:53.655605Z",{"id":79,"name":170,"slug":175,"description":176,"icon":181,"color":182,"cover_image":13,"created_at":183,"post_count":139},{"en":171,"ja":172,"zh":173,"zh_Hant":174},"Translation","翻訳","翻译","翻譯","translation",{"en":177,"ja":178,"zh":179,"zh_Hant":180},"Curated translations of high-quality foreign technical articles to keep up with international trends","国際的な技術トレンドを追うための厳選された海外技術記事の翻訳","优质外文技术文章精选翻译，紧跟国际技术前沿动态","優質外文技術文章精選翻譯，緊跟國際技術前沿動態","heroicons:language","#84cc16","2026-09-30T18:09:53.658041Z",{"items":185,"total":62,"page":6,"page_size":256,"total_pages":19},[186,216,241,265,289,309,322,346,366],{"id":6,"title":187,"subtitle":13,"slug":188,"excerpt":189,"cover_image":190,"author":191,"category":194,"tags":195,"status":212,"views":213,"likes_count":139,"comments_count":50,"is_pinned":15,"created_at":214,"published_at":214,"updated_at":215,"reading_time":34},"快速上手 FastAPI - 构建高性能 REST API","post-1-快速上手FastA","FastAPI 是现代 Python Web 框架中的佼佼者，基于类型提示自动生成文档、支持异步操作、性能媲美 Node.js。本文将通过实战项目带你从零构建一个完整的 CRUD API，涵盖路由定义、请求验证、依赖注入、数据库集成等核心特性，让你在 30 分钟内掌握 FastAPI 的精髓。","",{"id":6,"username":192,"nickname":192,"avatar":13,"cover_image":13,"bio":13,"website":13,"github":13,"avatar_source":13,"resolved_avatar_url":13,"title":13,"created_at":193},"Choyeon","2026-09-30T18:09:53.330367Z",{"id":19,"name":84,"slug":85,"description":89,"icon":91,"color":92,"cover_image":13,"created_at":93,"post_count":139},[196,197,202,208],{"id":6,"name":58,"slug":59,"color":60,"icon":13,"is_active":15,"created_at":61,"post_count":139},{"id":19,"name":198,"slug":199,"color":200,"icon":13,"is_active":15,"created_at":201,"post_count":139},"FastAPI","fastapi","#009688","2026-09-30T18:09:53.669567Z",{"id":203,"name":204,"slug":205,"color":206,"icon":13,"is_active":15,"created_at":207,"post_count":139},15,"性能优化","performance","#f97316","2026-09-30T18:09:53.707190Z",{"id":209,"name":111,"slug":115,"color":210,"icon":13,"is_active":15,"created_at":211,"post_count":139},25,"#94a3b8","2026-09-30T18:09:53.739676Z","published",557,"2026-08-17T23:09:53.733462Z","2026-10-01T11:19:50.917768Z",{"id":217,"title":218,"subtitle":13,"slug":219,"excerpt":220,"cover_image":13,"author":221,"category":222,"tags":223,"status":212,"views":238,"likes_count":139,"comments_count":42,"is_pinned":16,"created_at":239,"published_at":239,"updated_at":240,"reading_time":6},32,"Alembic 深度指南：数据库迁移 + 自动生成 + 分支合并","post-32-Alembic深度","SQLAlchemy 官方迁移工具 Alembic 完全指南：从 env.py 配置、autogenerate 自动检测模型变更（字段、索引、约束）、批处理脚本、downgrade 回滚策略，到多人并发开发时 migration 分支冲突、head 分叉合并的标准操作流程，附生产部署检查表。",{"id":6,"username":192,"nickname":192,"avatar":13,"cover_image":13,"bio":13,"website":13,"github":13,"avatar_source":13,"resolved_avatar_url":13,"title":13,"created_at":193},{"id":19,"name":84,"slug":85,"description":89,"icon":91,"color":92,"cover_image":13,"created_at":93,"post_count":139},[224,225,226,232],{"id":6,"name":58,"slug":59,"color":60,"icon":13,"is_active":15,"created_at":61,"post_count":139},{"id":19,"name":198,"slug":199,"color":200,"icon":13,"is_active":15,"created_at":201,"post_count":139},{"id":227,"name":228,"slug":229,"color":230,"icon":13,"is_active":15,"created_at":231,"post_count":139},10,"PostgreSQL","postgresql","#336791","2026-09-30T18:09:53.691803Z",{"id":233,"name":234,"slug":235,"color":236,"icon":13,"is_active":15,"created_at":237,"post_count":139},12,"Git","git","#f05032","2026-09-30T18:09:53.697858Z",122,"2026-09-29T22:09:53.733462Z","2026-10-01T10:32:41.701466Z",{"id":242,"title":243,"subtitle":13,"slug":244,"excerpt":245,"cover_image":13,"author":246,"category":247,"tags":248,"status":212,"views":262,"likes_count":139,"comments_count":42,"is_pinned":16,"created_at":263,"published_at":263,"updated_at":264,"reading_time":6},28,"CI\u002FCD Pipeline 设计：GitHub Actions + Cache + Matrix Build","post-28-CICDPipe","从零设计一套工业级 GitHub Actions 流水线：npm\u002Fpip 依赖缓存、多版本 Node\u002FPython Matrix 并行构建、Docker 镜像分层缓存、Lint+Test+Build+Publish 分阶段、条件执行、环境矩阵、失败重试和发布门禁最佳实践，附完整工作流代码。",{"id":6,"username":192,"nickname":192,"avatar":13,"cover_image":13,"bio":13,"website":13,"github":13,"avatar_source":13,"resolved_avatar_url":13,"title":13,"created_at":193},{"id":108,"name":159,"slug":160,"description":164,"icon":166,"color":167,"cover_image":13,"created_at":168,"post_count":139},[249,250,255,261],{"id":6,"name":58,"slug":59,"color":60,"icon":13,"is_active":15,"created_at":61,"post_count":139},{"id":79,"name":251,"slug":252,"color":253,"icon":13,"is_active":15,"created_at":254,"post_count":139},"Node.js","nodejs","#339933","2026-09-30T18:09:53.685769Z",{"id":256,"name":257,"slug":258,"color":259,"icon":13,"is_active":15,"created_at":260,"post_count":139},9,"Docker","docker","#2496ed","2026-09-30T18:09:53.688173Z",{"id":233,"name":234,"slug":235,"color":236,"icon":13,"is_active":15,"created_at":237,"post_count":139},193,"2026-09-25T18:09:53.733462Z","2026-10-01T10:33:25.639153Z",{"id":266,"title":267,"subtitle":13,"slug":268,"excerpt":269,"cover_image":13,"author":270,"category":271,"tags":272,"status":212,"views":286,"likes_count":139,"comments_count":26,"is_pinned":16,"created_at":287,"published_at":287,"updated_at":288,"reading_time":6},27,"测试金字塔：单元\u002F集成\u002FE2E 测试比例与落地","post-27-测试金字塔单元集","系统解析测试金字塔架构：从底层单元测试（大量快速、Mock 隔离依赖）、中层集成测试（服务\u002F数据库\u002F消息协作真实交互）、顶层 E2E 测试（真实用户路径少量精测）的推荐比例 70% \u002F 20% \u002F 10%，附项目覆盖率指标与落地实践。",{"id":6,"username":192,"nickname":192,"avatar":13,"cover_image":13,"bio":13,"website":13,"github":13,"avatar_source":13,"resolved_avatar_url":13,"title":13,"created_at":193},{"id":6,"name":68,"slug":70,"description":74,"icon":76,"color":77,"cover_image":13,"created_at":78,"post_count":139},[273,274,279,280],{"id":6,"name":58,"slug":59,"color":60,"icon":13,"is_active":15,"created_at":61,"post_count":139},{"id":50,"name":275,"slug":276,"color":277,"icon":13,"is_active":15,"created_at":278,"post_count":139},"TypeScript","typescript","#3178c6","2026-09-30T18:09:53.680697Z",{"id":79,"name":251,"slug":252,"color":253,"icon":13,"is_active":15,"created_at":254,"post_count":139},{"id":281,"name":282,"slug":283,"color":284,"icon":13,"is_active":15,"created_at":285,"post_count":139},13,"算法","algorithms","#ef4444","2026-09-30T18:09:53.700921Z",418,"2026-09-23T16:09:53.733462Z","2026-10-01T10:32:41.719776Z",{"id":290,"title":291,"subtitle":13,"slug":292,"excerpt":293,"cover_image":13,"author":294,"category":295,"tags":296,"status":212,"views":306,"likes_count":139,"comments_count":227,"is_pinned":16,"created_at":307,"published_at":307,"updated_at":308,"reading_time":6},26,"RAG 检索增强生成实战：Embedding + Vector DB + ReRank","post-26-RAG检索增强生成","从零搭建生产级 RAG 系统：文档分块策略（Chunk Size\u002F重叠窗口）、Embedding 模型选型与向量化、向量数据库（PGVector\u002FMilvus）检索过滤、Reranker 重排精修 Top-K，加上引用溯源和 Prompt 压缩优化，附完整可运行代码。",{"id":6,"username":192,"nickname":192,"avatar":13,"cover_image":13,"bio":13,"website":13,"github":13,"avatar_source":13,"resolved_avatar_url":13,"title":13,"created_at":193},{"id":19,"name":84,"slug":85,"description":89,"icon":91,"color":92,"cover_image":13,"created_at":93,"post_count":139},[297,298,299,300],{"id":6,"name":58,"slug":59,"color":60,"icon":13,"is_active":15,"created_at":61,"post_count":139},{"id":50,"name":275,"slug":276,"color":277,"icon":13,"is_active":15,"created_at":278,"post_count":139},{"id":227,"name":228,"slug":229,"color":230,"icon":13,"is_active":15,"created_at":231,"post_count":139},{"id":301,"name":302,"slug":303,"color":304,"icon":13,"is_active":15,"created_at":305,"post_count":139},17,"AI","ai","#a855f7","2026-09-30T18:09:53.712868Z",420,"2026-09-22T00:09:53.733462Z","2026-10-01T10:32:42.325973Z",{"id":209,"title":310,"subtitle":13,"slug":311,"excerpt":312,"cover_image":13,"author":313,"category":314,"tags":315,"status":212,"views":319,"likes_count":139,"comments_count":26,"is_pinned":16,"created_at":320,"published_at":320,"updated_at":321,"reading_time":6},"Prompt Engineering 入门：Few-Shot + CoT + 结构化输出","post-25-PromptEng","系统入门 Prompt Engineering 三大核心技术：Few-Shot 示例学习注入专业领域风格、Chain-of-Thought (CoT) 思维链引导复杂推理、JSON Schema 强制结构化输出对接下游系统。附真实 prompt 模板和避坑指南。",{"id":6,"username":192,"nickname":192,"avatar":13,"cover_image":13,"bio":13,"website":13,"github":13,"avatar_source":13,"resolved_avatar_url":13,"title":13,"created_at":193},{"id":50,"name":144,"slug":146,"description":150,"icon":152,"color":153,"cover_image":13,"created_at":154,"post_count":139},[316,317,318],{"id":6,"name":58,"slug":59,"color":60,"icon":13,"is_active":15,"created_at":61,"post_count":139},{"id":50,"name":275,"slug":276,"color":277,"icon":13,"is_active":15,"created_at":278,"post_count":139},{"id":301,"name":302,"slug":303,"color":304,"icon":13,"is_active":15,"created_at":305,"post_count":139},437,"2026-09-21T03:09:53.733462Z","2026-10-01T10:32:42.476509Z",{"id":323,"title":324,"subtitle":13,"slug":325,"excerpt":326,"cover_image":13,"author":327,"category":328,"tags":329,"status":212,"views":343,"likes_count":139,"comments_count":34,"is_pinned":16,"created_at":344,"published_at":344,"updated_at":345,"reading_time":6},22,"算法与数据结构：动态规划 5 大解题模板","post-22-算法与数据结构动态","彻底掌握动态规划：先给出通用 DP 解题五步法，再精解五大高频模板：背包类、子序列类、区间DP、状态压缩DP、树形DP，每个模板附典型代码与变形要点。",{"id":6,"username":192,"nickname":192,"avatar":13,"cover_image":13,"bio":13,"website":13,"github":13,"avatar_source":13,"resolved_avatar_url":13,"title":13,"created_at":193},{"id":19,"name":84,"slug":85,"description":89,"icon":91,"color":92,"cover_image":13,"created_at":93,"post_count":139},[330,331,332,338],{"id":6,"name":58,"slug":59,"color":60,"icon":13,"is_active":15,"created_at":61,"post_count":139},{"id":281,"name":282,"slug":283,"color":284,"icon":13,"is_active":15,"created_at":285,"post_count":139},{"id":333,"name":334,"slug":335,"color":336,"icon":13,"is_active":15,"created_at":337,"post_count":139},21,"Rust","rust","#dea584","2026-09-30T18:09:53.723993Z",{"id":323,"name":339,"slug":340,"color":341,"icon":13,"is_active":15,"created_at":342,"post_count":139},"Go","go","#00add8","2026-09-30T18:09:53.726775Z",149,"2026-09-15T22:09:53.733462Z","2026-10-01T10:32:42.611877Z",{"id":347,"title":348,"subtitle":13,"slug":349,"excerpt":350,"cover_image":13,"author":351,"category":352,"tags":353,"status":212,"views":363,"likes_count":139,"comments_count":42,"is_pinned":16,"created_at":364,"published_at":364,"updated_at":365,"reading_time":6},19,"JWT 认证安全最佳实践 + OAuth2 vs SAML","post-19-JWT认证安全最佳","系统性归纳 JWT 常见安全漏洞防护：算法混淆攻击（none\u002FRS256→HS256）、密钥爆破、KID注入、重放攻击防御，再从多个维度对比 OAuth2（授权码+PKCE）、OIDC、SAML 2.0 三种主流认证协议选型。",{"id":6,"username":192,"nickname":192,"avatar":13,"cover_image":13,"bio":13,"website":13,"github":13,"avatar_source":13,"resolved_avatar_url":13,"title":13,"created_at":193},{"id":50,"name":144,"slug":146,"description":150,"icon":152,"color":153,"cover_image":13,"created_at":154,"post_count":139},[354,355,356,357],{"id":6,"name":58,"slug":59,"color":60,"icon":13,"is_active":15,"created_at":61,"post_count":139},{"id":19,"name":198,"slug":199,"color":200,"icon":13,"is_active":15,"created_at":201,"post_count":139},{"id":79,"name":251,"slug":252,"color":253,"icon":13,"is_active":15,"created_at":254,"post_count":139},{"id":358,"name":359,"slug":360,"color":361,"icon":13,"is_active":15,"created_at":362,"post_count":139},16,"安全","security","#14b8a6","2026-09-30T18:09:53.709991Z",135,"2026-09-11T20:09:53.733462Z","2026-10-01T04:54:47.655492Z",{"id":367,"title":368,"subtitle":13,"slug":369,"excerpt":370,"cover_image":13,"author":371,"category":372,"tags":373,"status":212,"views":377,"likes_count":139,"comments_count":256,"is_pinned":16,"created_at":378,"published_at":378,"updated_at":379,"reading_time":6},14,"Python 并发：asyncio vs ThreadPool vs ProcessPool","post-14-Python并发","深度对比 Python 三大并发模型：GIL 限制下的线程池（IO 密集）、进程池（绕 GIL 适合 CPU 密集）、asyncio 协程（超高并发 IO）。从原理\u002F性能\u002F复杂度四维度给出选型决策树。",{"id":6,"username":192,"nickname":192,"avatar":13,"cover_image":13,"bio":13,"website":13,"github":13,"avatar_source":13,"resolved_avatar_url":13,"title":13,"created_at":193},{"id":19,"name":84,"slug":85,"description":89,"icon":91,"color":92,"cover_image":13,"created_at":93,"post_count":139},[374,375,376],{"id":6,"name":58,"slug":59,"color":60,"icon":13,"is_active":15,"created_at":61,"post_count":139},{"id":281,"name":282,"slug":283,"color":284,"icon":13,"is_active":15,"created_at":285,"post_count":139},{"id":203,"name":204,"slug":205,"color":206,"icon":13,"is_active":15,"created_at":207,"post_count":139},521,"2026-09-05T09:09:53.733462Z","2026-10-01T12:43:00.074164Z"]