<?xml version="1.0" encoding="utf-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>鹏少的自留地</title><link>http://www.0754110.com/</link><description> --- 那就这样吧~~~</description><item><title>进入素养调研5022</title><link>http://www.0754110.com/?id=26</link><description>&lt;div id=&quot;chatBody&quot;&gt;
&lt;ul&gt;
&lt;li style=&quot;list-style-type: none;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;a title=&quot;素养调研5022&quot; href=&quot;https://gensx.cn/145690ad_3&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 素养调研&lt;/a&gt;&lt;a title=&quot;素养调研5022&quot; href=&quot;https://gensx.cn/145690ad_3&quot;&gt;&amp;nbsp; 点击这里进入&lt;/a&gt;&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;font-size: 12pt;&quot;&gt;&amp;nbsp;网络测试系统&lt;span style=&quot;color: #000000;&quot;&gt;&lt;strong&gt;学校账号&lt;/strong&gt;&lt;/span&gt; ：&lt;strong&gt;&lt;span style=&quot;color: #ba372a;&quot;&gt;4405231138001&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;</description><pubDate>Thu, 30 Apr 2026 16:27:08 +0800</pubDate></item><item><title>Fly、Railway、Cloudflare 和 Vercel 流行的云服务平台 优缺点比较</title><link>http://www.0754110.com/?id=25</link><description>&lt;p&gt;&lt;strong&gt;fly、Railway&lt;/strong&gt;、&lt;strong&gt;Cloudflare&lt;/strong&gt;&amp;nbsp;和&amp;nbsp;&lt;strong&gt;Vercel&lt;/strong&gt; 都是流行的云服务平台，各自有不同的特点和适用场景。以下是它们的对比和主要用途（来自deepseek）：&lt;/p&gt;
&lt;table style=&quot;width: max-content;&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;特性&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Fly.io&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Railway&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Cloudflare&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Vercel&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;核心定位&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;全球分布式应用托管（边缘容器）&lt;/td&gt;
&lt;td&gt;全栈应用托管&lt;/td&gt;
&lt;td&gt;边缘网络/无服务器/静态托管&lt;/td&gt;
&lt;td&gt;前端/全栈托管（Next.js 优先）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;部署单元&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;🔹 轻量容器（Docker 或 Buildpacks）&lt;/td&gt;
&lt;td&gt;🔹 应用 + 数据库服务&lt;/td&gt;
&lt;td&gt;🔹 Workers（JS/Wasm）&lt;br /&gt;🔹 Pages（静态/SSG）&lt;/td&gt;
&lt;td&gt;🔹 前端框架 + Serverless Functions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;运行时支持&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;✅ 任意语言（通过容器）&lt;/td&gt;
&lt;td&gt;✅ Node.js, Python, Go 等&lt;/td&gt;
&lt;td&gt;✅ JavaScript/Wasm（Workers）&lt;/td&gt;
&lt;td&gt;✅ Next.js, React, Svelte 等&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;数据库支持&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;✅ 需自托管或外接（如 PostgreSQL）&lt;/td&gt;
&lt;td&gt;✅ 内置 PostgreSQL, Redis&lt;/td&gt;
&lt;td&gt;❌ 无内置（可用 D1/SQLite）&lt;/td&gt;
&lt;td&gt;❌ 无内置（需外接）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;边缘网络&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;✅ 全球 30+ 区域（自动就近部署）&lt;/td&gt;
&lt;td&gt;❌ 单区域部署&lt;/td&gt;
&lt;td&gt;✅ 全球 300+ 节点（最快 CDN）&lt;/td&gt;
&lt;td&gt;✅ 全球 CDN（优化前端）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;无服务器函数&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌ 需自行部署容器&lt;/td&gt;
&lt;td&gt;✅ 支持&lt;/td&gt;
&lt;td&gt;✅ Workers（边缘运行）&lt;/td&gt;
&lt;td&gt;✅ Serverless Functions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;冷启动时间&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌ 容器启动较慢（秒级）&lt;/td&gt;
&lt;td&gt;✅ 中等（依赖语言）&lt;/td&gt;
&lt;td&gt;⚡ 极快（毫秒级）&lt;/td&gt;
&lt;td&gt;❌ 明显（免费层）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;免费层&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;✅ 每月 2,300 vCPU 秒 + 3GB 内存&lt;/td&gt;
&lt;td&gt;✅ 每月最低5刀&lt;/td&gt;
&lt;td&gt;✅ 免费 10 万次 Workers/日&lt;/td&gt;
&lt;td&gt;✅ 免费层（函数限制）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;适用场景&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;- 全球分布式后端&lt;br /&gt;- 低延迟微服务&lt;/td&gt;
&lt;td&gt;- 全栈应用&lt;br /&gt;- 快速原型&lt;/td&gt;
&lt;td&gt;- 边缘逻辑&lt;br /&gt;- 静态站点&lt;/td&gt;
&lt;td&gt;- Next.js 应用&lt;br /&gt;- JAMStack&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;优势&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;真正的全球部署，支持任意语言&lt;/td&gt;
&lt;td&gt;简单易用，内置数据库&lt;/td&gt;
&lt;td&gt;免费额度高，延迟极低&lt;/td&gt;
&lt;td&gt;Next.js 深度优化&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;劣势&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;学习曲线陡（需容器知识）&lt;/td&gt;
&lt;td&gt;无边缘网络，国际化弱&lt;/td&gt;
&lt;td&gt;后端功能有限&lt;/td&gt;
&lt;td&gt;后端扩展性差&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;&lt;strong&gt;关键区别总结&lt;/strong&gt;&lt;/h3&gt;
&lt;ol start=&quot;1&quot;&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Fly.io&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;核心优势&lt;/strong&gt;：将容器部署到全球边缘节点，适合需要低延迟的后端服务（如实时 API、WebSocket）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;适合场景&lt;/strong&gt;：替代传统云服务（AWS ECS），但更轻量且全球化。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Railway&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;核心优势&lt;/strong&gt;：开箱即用的全栈托管（后端 + 数据库），适合快速迭代。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;适合场景&lt;/strong&gt;：替代 Heroku，或需要内置数据库的项目。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Cloudflare&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;核心优势&lt;/strong&gt;：无与伦比的边缘网络（Workers + Pages），适合静态站点或边缘计算。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;适合场景&lt;/strong&gt;：全球加速的轻量级逻辑（如短链接、API 网关）。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Vercel&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;核心优势&lt;/strong&gt;：前端框架的最佳体验（尤其是 Next.js），无缝集成 Git。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;适合场景&lt;/strong&gt;：以内容为核心的应用（博客、营销页）、Next.js 全栈。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;strong&gt;组合使用示例&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;实时游戏后端&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Fly.io（全球容器部署 WebSocket） + Cloudflare（边缘缓存）&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Next.js 全栈博客&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Vercel（前端） + Railway（PostgreSQL 后端）&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;全球 API 网关&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Cloudflare Workers（路由/鉴权） + Fly.io（业务逻辑容器）&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description><pubDate>Fri, 02 May 2025 00:33:11 +0800</pubDate></item><item><title>通俗易懂的语言解释什么是“反向代理”</title><link>http://www.0754110.com/?id=22</link><description>&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;正向代理&lt;/strong&gt;（类似&amp;ldquo;代购&amp;rdquo;）&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;你（客户端）找代购（正向代理）帮你买商品（访问服务器）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;商家（服务器）只知道代购，不知道你&lt;/strong&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;反向代理&lt;/strong&gt;（类似&amp;ldquo;快递柜&amp;rdquo;）&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;商家（服务器）把商品放到快递柜（反向代理）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;你（客户端）只知道快递柜，不知道商家仓库在哪&lt;/strong&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;一句话总结&lt;/strong&gt;&lt;br /&gt;正向代理 = 替客户端跑腿（隐藏客户端）。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;反向代理 = 替服务器接客（隐藏服务器）。&lt;/p&gt;</description><pubDate>Fri, 18 Apr 2025 10:32:45 +0800</pubDate></item><item><title>国内AI大乱斗，除了豆包，kimi外，最近又来了个deepseek</title><link>http://www.0754110.com/?id=21</link><description>&lt;p&gt;&lt;a href=&quot;http://www.deepseek.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;img src=&quot;http://www.0754110.com/zb_users/upload/2025/01/20250105235626173609258656080.png&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;这个最新的DeepSeek-V3 提供&lt;a href=&quot;https://chat.deepseek.com/&quot;&gt;在线chat&lt;/a&gt;的外，还提供API接入，价格只要10块起步，一般人用一年都够用。当然要免费的也可以去下载豆包或者kimi。&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;目前已经通过API接入到我自己的人工智能&lt;a href=&quot;http://share.0754110.com/chat&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;http://share.0754110.com/chat&lt;/a&gt;里面，有兴趣的可以去免费使用看看。&lt;/p&gt;</description><pubDate>Sun, 05 Jan 2025 23:53:45 +0800</pubDate></item><item><title>十年前的南澳岛前江湾天然沙滩</title><link>http://www.0754110.com/?id=20</link><description>&lt;p&gt;&lt;img src=&quot;http://www.0754110.com/zb_users/upload/2024/12/20241207135159173355071951598.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;那时还没有开发沙滩公园~&lt;/p&gt;</description><pubDate>Sat, 07 Dec 2024 13:51:46 +0800</pubDate></item><item><title>南澳大桥，夕阳西下~</title><link>http://www.0754110.com/?id=19</link><description>&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;http://www.0754110.com/zb_users/upload/2024/12/20241207135946173355118645171.jpeg&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;http://www.0754110.com/zb_users/upload/2024/12/20241207135923173355116374881.jpeg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;</description><pubDate>Thu, 05 Dec 2024 01:03:35 +0800</pubDate></item><item><title>SQLite 数据库在windows下的安装</title><link>http://www.0754110.com/?id=17</link><description>&lt;h2 class=&quot;&quot; style=&quot;margin: 20px 0px 10px; padding: 0px; color: #333333; line-height: 1.7; font-size: 20px; font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'PingFang SC', 'Microsoft YaHei', 'Source Han Sans SC', 'Noto Sans CJK SC', 'WenQuanYi Micro Hei', sans-serif; white-space: normal; background-color: #ffffff;&quot;&gt;在 Windows 上安装 SQLite&lt;/h2&gt;
&lt;ul class=&quot;list list-paddingleft-2&quot; style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px 0px 0px 30px; list-style-position: outside; list-style-image: none; line-height: 1.7; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'PingFang SC', 'Microsoft YaHei', 'Source Han Sans SC', 'Noto Sans CJK SC', 'WenQuanYi Micro Hei', sans-serif; font-size: 15px; white-space: normal; background-color: #ffffff;&quot;&gt;
&lt;li&gt;
&lt;p style=&quot;margin-top: 0px; padding: 0px; overflow-wrap: break-word; line-height: 1.7;&quot;&gt;点击访问&amp;nbsp;&lt;a style=&quot;margin: 0px; padding: 0px; color: #fe6a00; outline: 0px; word-break: break-all;&quot; href=&quot;https://www.sqlite.org/download.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;SQLite 下载页面&lt;/a&gt;，从 Windows 区下载预编译的二进制文件，win系统是32位就下载32-bit，64位则下载64-bit，以上二选一。最后一个&lt;span style=&quot;color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'PingFang SC', 'Microsoft YaHei', 'Source Han Sans SC', 'Noto Sans CJK SC', 'WenQuanYi Micro Hei', sans-serif; font-size: 15px; background-color: #ffffff;&quot;&gt;&lt;strong style=&quot;color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'PingFang SC', 'Microsoft YaHei', 'Source Han Sans SC', 'Noto Sans CJK SC', 'WenQuanYi Micro Hei', sans-serif; font-size: 15px; white-space: normal; background-color: #ffffff; margin: 0px; padding: 0px;&quot;&gt;sqlite-tools-win-*.zip&lt;/strong&gt;&lt;span style=&quot;color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'PingFang SC', 'Microsoft YaHei', 'Source Han Sans SC', 'Noto Sans CJK SC', 'WenQuanYi Micro Hei', sans-serif; font-size: 15px; background-color: #ffffff;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;必须下。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;margin-top: 0px; padding: 0px; overflow-wrap: break-word; line-height: 1.7;&quot;&gt;&lt;img style=&quot;width: 423px; height: 152px;&quot; src=&quot;http://www.0754110.com/zb_users/upload/2024/09/202409081725797915826966.png&quot; alt=&quot;image.png&quot; width=&quot;423&quot; height=&quot;152&quot; /&gt;&lt;/p&gt;
&lt;ul class=&quot;list list-paddingleft-2&quot; style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px 0px 0px 30px; list-style-position: outside; list-style-image: none; line-height: 1.7; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'PingFang SC', 'Microsoft YaHei', 'Source Han Sans SC', 'Noto Sans CJK SC', 'WenQuanYi Micro Hei', sans-serif; font-size: 15px; white-space: normal; background-color: #ffffff;&quot;&gt;
&lt;li&gt;
&lt;p style=&quot;margin-top: 0px; padding: 0px; overflow-wrap: break-word; line-height: 1.7;&quot;&gt;下载&amp;nbsp;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;sqlite-dll-win-*.zip&lt;/strong&gt;&amp;nbsp;和&amp;nbsp;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;sqlite-tools-win-*.zip&lt;/strong&gt;&amp;nbsp;好后，解压缩文件到同一个文件夹中，这里假设在&lt;span style=&quot;color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'PingFang SC', 'Microsoft YaHei', 'Source Han Sans SC', 'Noto Sans CJK SC', 'WenQuanYi Micro Hei', sans-serif; font-size: 15px; background-color: #ffffff;&quot;&gt;&amp;nbsp;C:\&amp;gt;sqlite&lt;/span&gt;，&lt;span style=&quot;color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'PingFang SC', 'Microsoft YaHei', 'Source Han Sans SC', 'Noto Sans CJK SC', 'WenQuanYi Micro Hei', sans-serif; font-size: 15px; background-color: #ffffff;&quot;&gt;将得到 sqlite3.def、sqlite3.dll 和 sqlite3.exe 等若干文件&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p style=&quot;margin-top: 0px; padding: 0px; overflow-wrap: break-word; line-height: 1.7;&quot;&gt;添加 C:\&amp;gt;sqlite 到 PATH 环境变量，最后在命令提示符cmd中，使用&amp;nbsp;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;sqlite3&lt;/strong&gt;&amp;nbsp;命令，如果cmd中出现如下sqlite&amp;gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;margin-top: 0px; padding: 0px; overflow-wrap: break-word; line-height: 1.7;&quot;&gt;&lt;img src=&quot;http://www.0754110.com/zb_users/upload/2024/09/202409081725798917391629.png&quot; alt=&quot;image.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;margin-top: 0px; padding: 0px; overflow-wrap: break-word; line-height: 1.7;&quot;&gt;则说明安装成功。若没有反应，提示错误Windows 找不到文件 'sqlite3'，则说明添加到PATH环境变量可能没添加正确。&lt;/p&gt;</description><pubDate>Sun, 08 Sep 2024 20:00:50 +0800</pubDate></item><item><title>用批处理实现快速导出当前环境安装的包库目录到requirements.txt中实现python快速转移复制环境</title><link>http://www.0754110.com/?id=16</link><description>&lt;p&gt;正常情况下，在python的配置（虚拟）环境复制到新的机器中是，需要将原来的库打包&lt;/p&gt;
&lt;p&gt;打包方法：&lt;/p&gt;
&lt;pre class=&quot;prism-highlight prism-  language-bash&quot;&gt;&lt;code&gt;pip freeze&amp;gt;requirements.txt&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;将生成的requirements.txt文件拷贝到新的环境机器中，然后再以下命令安装回来即可实现复制环境，达到快速开发的作用。&lt;/p&gt;
&lt;pre class=&quot;prism-highlight prism-  language-bash&quot;&gt;&lt;code&gt;pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;但是在原环境中，有时开发环境的库一更新就要重新pip freeze&amp;gt;requirements.txt 打包一次，比较麻烦。这里采用批处理文件执行的方式来打包，这样只要在系统中运行批处理文件即可实现快速打包。&lt;/p&gt;
&lt;pre class=&quot;prism-highlight prism-  language-bash&quot;&gt;&lt;code&gt;@echo off
echo 激活venv虚拟环境
echo -------
call excel_dev_env\Scripts\activate
echo 生成 requirements.txt...
echo -------
pip freeze &amp;gt; requirements.txt
if exist requirements.txt (
    echo 【1】requirements.txt 生成成功，则
    echo  运行pip install -r requirements.txt 可批量安装回里面的库
    echo -------
    echo 【2】如果生成的requirements.txt里面是空白的，则
    echo 可能是这个bat文件里面call的venv路径错误。   
    echo -------
)
pause&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;将上面的代码复制，打开记事本，然后保存为bat文件即可。或者下载下面的rar压缩包解压即可。&lt;/p&gt;
&lt;p class=&quot;ue-upload&quot; style=&quot;line-height: 16px;&quot;&gt;&lt;img style=&quot;vertical-align: middle; margin-right: 2px;&quot; src=&quot;http://www.0754110.com/zb_system/image/filetype/rar.png&quot; /&gt;&lt;a style=&quot;font-size: 12px; color: #0066cc;&quot; title=&quot;库快速打包.rar&quot; href=&quot;http://www.0754110.com/zb_users/upload/2024/07/202407251721922848606261.rar&quot;&gt;库快速打包.rar&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;【一定要注意的是】&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;代码中，第四行&lt;/p&gt;
&lt;pre class=&quot;prism-highlight prism-  language-bash&quot;&gt;&lt;code&gt;call excel_dev_env\Scripts\activate&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;里面的&lt;/p&gt;
&lt;pre class=&quot;prism-highlight prism-  language-bash&quot;&gt;&lt;code&gt;excel_dev_env\Scripts\activate&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;必须改成你要打包的环境的绝对路径，否则就出错了。打包成空白了。&lt;/p&gt;</description><pubDate>Thu, 25 Jul 2024 23:43:26 +0800</pubDate></item><item><title>python操作sqlite3数据库，通过一般方法和使用pandas来读取显示数据库内容</title><link>http://www.0754110.com/?id=15</link><description>&lt;p&gt;本文通过两种方式来读取显示一个根目录下stu.db数据库中【student_scores】表的内容，【student_scores】表中有&amp;#39;级别&amp;#39;, &amp;#39;班别&amp;#39;, &amp;#39;学生姓名&amp;#39;,&amp;nbsp; &amp;#39;等级&amp;#39;, &amp;#39;成绩&amp;#39;等关键字段。&lt;/p&gt;&lt;p&gt;#传统方法：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;show_data（使用 params 参数传递两个查询参数，避免 SQL 注入）【显示】 调用 fetch_data（）【查询】出来的【数据】，&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;【数据】通过connect_db（db_path）【连接】db_path指定的【数据库】获得。&amp;nbsp;&lt;/p&gt;&lt;p&gt;#pandas方法：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;show_data_pandas（使用 params 参数传递两个查询参数，避免 SQL 注入）【显示】 调用 fetch_data_pandas（）【查询】出来的【数据】，&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;【数据】通过connect_db（db_path）【连接】db_path指定的【数据库】获得。&lt;/p&gt;&lt;p&gt;下面的示例是&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-python&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;show_data(2,&amp;nbsp;&amp;#39;D&amp;#39;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;一般方法查询班级为&amp;quot;2&amp;quot;班，成绩等级&amp;quot;D&amp;quot;并打印显示出来
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;show_data_pandas(1,&amp;nbsp;&amp;#39;C&amp;#39;)&amp;nbsp;#&amp;nbsp;通过pandas查询班级为&amp;quot;1&amp;quot;班，成绩等级&amp;quot;C&amp;quot;并打印显示出来&lt;/pre&gt;&lt;p&gt;以下是示例的所有内容。&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-python&quot;&gt;import&amp;nbsp;os
import&amp;nbsp;sqlite3
import&amp;nbsp;sys
import&amp;nbsp;logging
import&amp;nbsp;pandas&amp;nbsp;as&amp;nbsp;pd


def&amp;nbsp;connect_db(db_path):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;&amp;quot;&amp;quot;连接数据库并返回连接对象&amp;quot;&amp;quot;&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;conn&amp;nbsp;=&amp;nbsp;sqlite3.connect(db_path)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;conn
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;except&amp;nbsp;sqlite3.Error&amp;nbsp;as&amp;nbsp;e:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;logging.error(f&amp;quot;连接数据库失败:&amp;nbsp;{e}&amp;quot;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sys.exit(1)


def&amp;nbsp;fetch_data(conn,&amp;nbsp;class_id,&amp;nbsp;grade):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;&amp;quot;&amp;quot;从数据库中查询数据并返回结果&amp;quot;&amp;quot;&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cursor&amp;nbsp;=&amp;nbsp;conn.cursor()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;query&amp;nbsp;=&amp;nbsp;&amp;quot;SELECT&amp;nbsp;*&amp;nbsp;FROM&amp;nbsp;student_scores&amp;nbsp;WHERE&amp;nbsp;班别=?&amp;nbsp;AND&amp;nbsp;等级=?&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cursor.execute(query,&amp;nbsp;(class_id,&amp;nbsp;grade))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;cursor.fetchall()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;except&amp;nbsp;sqlite3.Error&amp;nbsp;as&amp;nbsp;e:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;logging.error(f&amp;quot;查询数据失败:&amp;nbsp;{e}&amp;quot;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;[]


def&amp;nbsp;fetch_data_pandas(conn,&amp;nbsp;class_id,&amp;nbsp;grade):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;&amp;quot;&amp;quot;使用&amp;nbsp;pandas&amp;nbsp;从数据库中查询数据&amp;quot;&amp;quot;&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;使用参数化查询
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;query&amp;nbsp;=&amp;nbsp;&amp;quot;SELECT&amp;nbsp;*&amp;nbsp;FROM&amp;nbsp;student_scores&amp;nbsp;WHERE&amp;nbsp;班别=?&amp;nbsp;AND&amp;nbsp;等级=?&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;data&amp;nbsp;=&amp;nbsp;pd.read_sql(query,&amp;nbsp;conn,&amp;nbsp;params=(class_id,&amp;nbsp;grade))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;print(data)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;data
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;except&amp;nbsp;sqlite3.Error&amp;nbsp;as&amp;nbsp;e:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(f&amp;quot;数据库连接失败:&amp;nbsp;{e}&amp;quot;)


def&amp;nbsp;show_data(class_id,&amp;nbsp;grade):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;&amp;quot;&amp;quot;显示数据&amp;quot;&amp;quot;&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;db_path&amp;nbsp;=&amp;nbsp;&amp;#39;stu.db&amp;#39;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;not&amp;nbsp;os.path.exists(db_path):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;logging.warning(f&amp;quot;数据库文件不存在，请检查{db_path}路径&amp;quot;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;conn&amp;nbsp;=&amp;nbsp;connect_db(db_path)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;results&amp;nbsp;=&amp;nbsp;fetch_data(conn,&amp;nbsp;class_id,&amp;nbsp;grade)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;row&amp;nbsp;in&amp;nbsp;results:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(row)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;conn.close()


def&amp;nbsp;show_data_pandas(class_id,&amp;nbsp;grade):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;&amp;quot;&amp;quot;显示pandas查询到的数据&amp;quot;&amp;quot;&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;db_path&amp;nbsp;=&amp;nbsp;&amp;#39;stu.db&amp;#39;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;not&amp;nbsp;os.path.exists(db_path):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;logging.warning(f&amp;quot;数据库文件不存在，请检查{db_path}路径&amp;quot;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;conn&amp;nbsp;=&amp;nbsp;connect_db(db_path)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;results&amp;nbsp;=&amp;nbsp;fetch_data_pandas(conn,&amp;nbsp;class_id,&amp;nbsp;grade)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(results)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;conn.close()


if&amp;nbsp;__name__&amp;nbsp;==&amp;nbsp;&amp;quot;__main__&amp;quot;:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;logging.basicConfig(level=logging.INFO)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;show_data(2,&amp;nbsp;&amp;#39;D&amp;#39;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;show_data_pandas(1,&amp;nbsp;&amp;#39;C&amp;#39;)&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;如果要修改查询的关键字，可以更改这段最后的字段为你要查询的字段。&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-python&quot;&gt;query&amp;nbsp;=&amp;nbsp;&amp;quot;SELECT&amp;nbsp;*&amp;nbsp;FROM&amp;nbsp;student_scores&amp;nbsp;WHERE&amp;nbsp;班别=?&amp;nbsp;AND&amp;nbsp;等级=?&amp;quot;&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;注意：运行上面代码的前提是根目录有一个stu.db数据库，数据库里有个student_scores 表，表里有&amp;#39;级别&amp;#39;, &amp;#39;班别&amp;#39;, &amp;#39;学生姓名&amp;#39;,&amp;nbsp; &amp;#39;等级&amp;#39;, &amp;#39;成绩&amp;#39;等字段,其中&amp;#39;班别&amp;#39;和&amp;#39;等级&amp;#39;必须有，因为前面sql查询语句里面指定了这两个条件。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Thu, 25 Jul 2024 19:38:05 +0800</pubDate></item><item><title>python项目移动或更改目录名称后，pycharm运行pip出错的处理方法</title><link>http://www.0754110.com/?id=14</link><description>&lt;p&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;当你的python项目（含有虚拟环境venv）更改目录或者改名字后，用pycharm打开项目，重新设置interpreter后正常了，但是会发现在使用pip的时候报错。处理的方法就是删除这个python项目里面所有的&lt;span style=&quot;color: #1d1d1f; font-family: SourceSansPro, -apple-system, 'PingFang SC', 'Apple Color Emoji', BlinkMacSystemFont, Helvetica, Arial, 'Segoe UI Emoji', 'Segoe UI Symbol', 'Microsoft YaHei', 微软雅黑, 黑体, Heiti, sans-serif, SimSun, 宋体, serif; white-space: pre-wrap; background-color: #ffffff;&quot;&gt;__pycache__目录。嫌麻烦也可以到虚拟环境所在的文件夹，也就是your_&lt;span style=&quot;color: #1d1d1f; font-family: SourceSansPro, -apple-system, 'PingFang SC', 'Apple Color Emoji', BlinkMacSystemFont, Helvetica, Arial, 'Segoe UI Emoji', 'Segoe UI Symbol', 'Microsoft YaHei', 微软雅黑, 黑体, Heiti, sans-serif, SimSun, 宋体, serif; white-space: pre-wrap; background-color: #ffffff;&quot;&gt;env\Lib\site-packages，删除里面的pip文件夹即可。重启pychram，再去terminal运行pip就能正常了。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;&lt;span style=&quot;color: #1d1d1f; font-family: SourceSansPro, -apple-system, 'PingFang SC', 'Apple Color Emoji', BlinkMacSystemFont, Helvetica, Arial, 'Segoe UI Emoji', 'Segoe UI Symbol', 'Microsoft YaHei', 微软雅黑, 黑体, Heiti, sans-serif, SimSun, 宋体, serif; white-space: pre-wrap; background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #1d1d1f; font-family: SourceSansPro, -apple-system, 'PingFang SC', 'Apple Color Emoji', BlinkMacSystemFont, Helvetica, Arial, 'Segoe UI Emoji', 'Segoe UI Symbol', 'Microsoft YaHei', 微软雅黑, 黑体, Heiti, sans-serif, SimSun, 宋体, serif; white-space: pre-wrap; background-color: #ffffff;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;&lt;span style=&quot;color: #1d1d1f; font-family: SourceSansPro, -apple-system, 'PingFang SC', 'Apple Color Emoji', BlinkMacSystemFont, Helvetica, Arial, 'Segoe UI Emoji', 'Segoe UI Symbol', 'Microsoft YaHei', 微软雅黑, 黑体, Heiti, sans-serif, SimSun, 宋体, serif; white-space: pre-wrap; background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #1d1d1f; font-family: SourceSansPro, -apple-system, 'PingFang SC', 'Apple Color Emoji', BlinkMacSystemFont, Helvetica, Arial, 'Segoe UI Emoji', 'Segoe UI Symbol', 'Microsoft YaHei', 微软雅黑, 黑体, Heiti, sans-serif, SimSun, 宋体, serif; white-space: pre-wrap; background-color: #ffffff;&quot;&gt;&lt;img src=&quot;http://www.0754110.com/zb_users/upload/2024/07/202407181721238921870109.png&quot; alt=&quot;image.png&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description><pubDate>Thu, 18 Jul 2024 01:47:33 +0800</pubDate></item></channel></rss>