<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Pert的博客]]></title><description><![CDATA[这里是LionLingLong的温暖小窝~]]></description><link>https://blog.youkuaiyun.com/s_frozen</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; s_frozen]]></copyright><item><title><![CDATA[调用通义千问]]></title><link>https://blog.youkuaiyun.com/s_frozen/article/details/157026130</link><guid>https://blog.youkuaiyun.com/s_frozen/article/details/157026130</guid><author>s_frozen</author><pubDate>Fri, 16 Jan 2026 14:42:43 +0800</pubDate><description><![CDATA[这样就只会打印 AI 回复的内容，不带元信息。]]></description><category></category></item><item><title><![CDATA[playwright的断言]]></title><link>https://blog.youkuaiyun.com/s_frozen/article/details/156933775</link><guid>https://blog.youkuaiyun.com/s_frozen/article/details/156933775</guid><author>s_frozen</author><pubDate>Wed, 14 Jan 2026 09:02:40 +0800</pubDate><description><![CDATA[✅ Playwright 写法更短、更智能、自动等待，不需要额外导入。：验证页面是否跳转到期望 URL。：检查元素里的文本是否符合预期。的 value 是否符合预期。：判断按钮或表单元素是否可用。：检查元素是否显示在页面上。]]></description><category></category></item><item><title><![CDATA[playwright的 get_by_role详细用法]]></title><link>https://blog.youkuaiyun.com/s_frozen/article/details/156933733</link><guid>https://blog.youkuaiyun.com/s_frozen/article/details/156933733</guid><author>s_frozen</author><pubDate>Wed, 14 Jan 2026 09:02:01 +0800</pubDate><description><![CDATA[✅ label / placeholder 清晰。👉 class 改了，role 还在。👉 DOM 改了，role 还在。✅ 页面加载成功判断。]]></description><category></category></item><item><title><![CDATA[playwright匹配]]></title><link>https://blog.youkuaiyun.com/s_frozen/article/details/156933696</link><guid>https://blog.youkuaiyun.com/s_frozen/article/details/156933696</guid><author>s_frozen</author><pubDate>Wed, 14 Jan 2026 09:01:23 +0800</pubDate><description><![CDATA[🚨不推荐，但你必须认识page.locator("//button[text()='登录']")❌ 易碎❌ 难维护。]]></description><category></category></item><item><title><![CDATA[playwright介绍]]></title><link>https://blog.youkuaiyun.com/s_frozen/article/details/156933664</link><guid>https://blog.youkuaiyun.com/s_frozen/article/details/156933664</guid><author>s_frozen</author><pubDate>Wed, 14 Jan 2026 09:00:51 +0800</pubDate><description><![CDATA[💡 总结： 更现代化，自动等待和跨浏览器内置支持是它的最大优势。

2. 基本示例

✅ 注意：💡 Tip：Playwright 推荐用  对象，它自带自动等待：
Selenium 里你可能需要显式等待：]]></description><category></category></item><item><title><![CDATA[python正则 re]]></title><link>https://blog.youkuaiyun.com/s_frozen/article/details/156933606</link><guid>https://blog.youkuaiyun.com/s_frozen/article/details/156933606</guid><author>s_frozen</author><pubDate>Wed, 14 Jan 2026 08:59:47 +0800</pubDate><description><![CDATA[✔ 多个字段（name、id、phone）✔ 邮箱前缀 / 文件名 / 人名。✔ 因为你只是用来「匹配规则」❌ 没有 group(1)✔ 优化性能 & 可读性。✔ “但不能是 XXX”会白白占用一个分组序号。❌ 匹配失败（正确！✔ 分隔符不想进结果。]]></description><category></category></item><item><title><![CDATA[python类的内置方法]]></title><link>https://blog.youkuaiyun.com/s_frozen/article/details/156897575</link><guid>https://blog.youkuaiyun.com/s_frozen/article/details/156897575</guid><author>s_frozen</author><pubDate>Tue, 13 Jan 2026 12:15:46 +0800</pubDate><description><![CDATA[_repr__!r✅ 一眼就能看懂对象内容，且隐藏了密码f-string 里用到的!rf" {r } "!r表示调用repr()而不是str()!s表示调用 str()!a表示调用 ascii()非 ASCII 字符转义为 \u 或 \U 格式，英文/数字/符号不受影响，所以在普通英文字符串上看不出效果这样打印字符串会带上引号，像'admin'# 默认是!sname = "张三"print(f"# 默认是!]]></description><category></category></item><item><title><![CDATA[windows访问github（网络问题无法访问）]]></title><link>https://blog.youkuaiyun.com/s_frozen/article/details/156890756</link><guid>https://blog.youkuaiyun.com/s_frozen/article/details/156890756</guid><author>s_frozen</author><pubDate>Tue, 13 Jan 2026 10:34:20 +0800</pubDate><description><![CDATA[✅ 如果页面正常打开，且样式完整（不是纯文字）、头像能加载 → 成功！绕过被污染的 DNS，直接用正确的 IP 地址访问 GitHub。保存文件（如果提示无法保存，请确认你用了“管理员身份运行记事本”）、无需安装额外软件、能同时解决网页打不开和加载慢的问题。这会清除本地 DNS 缓存，让新 hosts 生效。→ 右键“以管理员身份运行”记事本。在右下角选择“所有文件”，然后打开。把上面那段 IP 内容。打开浏览器，访问： 👉。]]></description><category></category></item><item><title><![CDATA[python函数的参数规范]]></title><link>https://blog.youkuaiyun.com/s_frozen/article/details/156890699</link><guid>https://blog.youkuaiyun.com/s_frozen/article/details/156890699</guid><author>s_frozen</author><pubDate>Tue, 13 Jan 2026 10:33:35 +0800</pubDate><description><![CDATA[f(*nums)等价于f(1, 2, 3)]]></description><category></category></item><item><title><![CDATA[Mac（M3）安装Homebrew、Nvm、Node、终端高亮显示]]></title><link>https://blog.youkuaiyun.com/s_frozen/article/details/143781056</link><guid>https://blog.youkuaiyun.com/s_frozen/article/details/143781056</guid><author>s_frozen</author><pubDate>Thu, 14 Nov 2024 21:17:11 +0800</pubDate><description><![CDATA[平台下的软件包管理工具，拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令，就可以实现包管理，而不用你关心各种依赖和文件路径的情况，十分方便快捷。命令解释：从 brew 列表中卸载 nvm 软件包，后在进入用户目录下删除。：这将确保你安装的是最新的长期支持（LTS）版本，这些版本通常更稳定。自己通过 nvm 安装过的 node 的位置。查看可以安装的所有 Node.js 版本。是因为修改了镜像为国内（看个人需求）执行脚本并在提示下输入开机密码。版本确认无误后执行命令。后面添加这两行代码）]]></description><category></category></item><item><title><![CDATA[vscode检查python语法]]></title><link>https://blog.youkuaiyun.com/s_frozen/article/details/129317838</link><guid>https://blog.youkuaiyun.com/s_frozen/article/details/129317838</guid><author>s_frozen</author><pubDate>Fri, 03 Mar 2023 12:30:53 +0800</pubDate><description><![CDATA[所有不符合pep8规则的都会展示出来，一个个文件改就行了。在VScode配置中打开首选项–>设置，搜索。打开命令行窗口安装以下工具。]]></description><category></category></item><item><title><![CDATA[一行 Python 代码实现并行！]]></title><link>https://blog.youkuaiyun.com/s_frozen/article/details/129252853</link><guid>https://blog.youkuaiyun.com/s_frozen/article/details/129252853</guid><author>s_frozen</author><pubDate>Tue, 28 Feb 2023 00:15:18 +0800</pubDate><description><![CDATA[dummy 是 multiprocessing 模块的完整克隆，唯一的不同在于 multiprocessing 作用于进程，而 dummy 模块作用于线程（因此也包括了 Python 所有常见的多线程限制）。这段代码能正确的运行，但仔细看看我们需要做些什么：构造不同的方法、追踪一系列的线程，还有为了解决恼人的死锁问题，我们需要进行一系列的 join 操作。Pool 对象有一些参数，这里我所需要关注的只是它的第一个参数：processes. 这一参数用于设定线程池中的线程数。所以替换使用这两个库异常容易。]]></description><category></category></item><item><title><![CDATA[docker odoo创建模块]]></title><link>https://blog.youkuaiyun.com/s_frozen/article/details/129243675</link><guid>https://blog.youkuaiyun.com/s_frozen/article/details/129243675</guid><author>s_frozen</author><pubDate>Mon, 27 Feb 2023 15:56:04 +0800</pubDate><description><![CDATA[name：这是标识视图的标题。在Odoo的源码中，你会发现这里重复使用了XML ID，但是你完全可以添加一个更易于阅读的名称作为标题。**小贴士：**如果省略了name字段，Odoo会使用模型名称及视图类型来生成一个。对于新模型的标准视图这完全没有问题。在继承视图时建议使用一个更具说明性的名称，因为这会让你在Odoo用户界面上查找具体视图时更为方便。model：这是目标模型的内部标识符，和**_name**属性中的所定义的名称一致。arch：这是视图架构，实际定义结构的地方。这里不同类型的视图会有不同。]]></description><category></category></item><item><title><![CDATA[odoo（搭建部署资源、教程）]]></title><link>https://blog.youkuaiyun.com/s_frozen/article/details/129179656</link><guid>https://blog.youkuaiyun.com/s_frozen/article/details/129179656</guid><author>s_frozen</author><pubDate>Thu, 23 Feb 2023 13:24:52 +0800</pubDate><description><![CDATA[挂在本地文件到docker上（将本地的/home/odoo/addons目录下的模块挂载到docker的/mnt/extra-addons目录下）需要按照自己的安装目录来）查看容器中服务的进程（1b0f78a03cd1是docker ps 看到的CONTAINER ID）不要建/Users/pert/Documents/odoo/postgresql_13这个文件夹。不要建/Users/pert/Documents/odoo/addons这个文件夹。如果想使用不同的数据库用户，则需提供该用户的密码。]]></description><category></category></item><item><title><![CDATA[Django数据库字段及参数]]></title><link>https://blog.youkuaiyun.com/s_frozen/article/details/129031435</link><guid>https://blog.youkuaiyun.com/s_frozen/article/details/129031435</guid><author>s_frozen</author><pubDate>Tue, 14 Feb 2023 18:03:41 +0800</pubDate><description><![CDATA[【代码】Django数据库字段及参数。]]></description><category></category></item><item><title><![CDATA[Django的多表查询]]></title><link>https://blog.youkuaiyun.com/s_frozen/article/details/129031408</link><guid>https://blog.youkuaiyun.com/s_frozen/article/details/129031408</guid><author>s_frozen</author><pubDate>Tue, 14 Feb 2023 18:02:07 +0800</pubDate><description><![CDATA[所谓的正向和反向连接表操作的标识仅由Foreign_Key字段位于哪个表来确定，Foreign_Key字段可用于连接任何表中的表；否则，将使用与Foreign_Key字段关联的小写表名。一对多：对象。外键。关联表字段，值(外键字段_ 关联表字段)多对多：外键字段。全部()通过值、值列表和过滤器反转跨表：小写表名_ 关联的表字段按对象反向跨表：小写surface _set.all()。all()：获取全部filter：再次筛选。]]></description><category></category></item><item><title><![CDATA[pymysql操作数据库]]></title><link>https://blog.youkuaiyun.com/s_frozen/article/details/129031395</link><guid>https://blog.youkuaiyun.com/s_frozen/article/details/129031395</guid><author>s_frozen</author><pubDate>Tue, 14 Feb 2023 18:00:53 +0800</pubDate><description><![CDATA[这样，SQL操作就更安全了。不过好像这些SQL数据库的实现还不太一样，PyMySQL的参数占位符使用%s这样的C格式化符，而Python自带的sqlite3模块的占位符好像是问号(?不同的数据库你需要下载不同的DB API模块，例如你需要访问Oracle数据库和Mysql数据，你需要下载Oracle和MySQL数据库模块。Python的DB-API，为大多数的数据库实现了接口，使用它连接各数据库后，就可以用相同的方式操作各数据库。你可以访问Python数据库接口及API查看详细的支持数据库列表。]]></description><category></category></item><item><title><![CDATA[Mysql的字段类型]]></title><link>https://blog.youkuaiyun.com/s_frozen/article/details/129031385</link><guid>https://blog.youkuaiyun.com/s_frozen/article/details/129031385</guid><author>s_frozen</author><pubDate>Tue, 14 Feb 2023 17:59:57 +0800</pubDate><description><![CDATA[例如，指定列数据类型为 BINARY(3)，当插入 a 时，存储的内容实际为 “\a0\0”，当插入 ab 时，实际存储的内容为“ab\0”，无论存储的内容是否达到指定的长度，存储空间均为指定的值 M。M 表示每个值的位数，范围为 1～64。TIME 类型的取值范围为 -838：59：59～838：59：59，小时部分如此大的原因是 TIME 类型不仅可以用于表示一天的时间（必须小于 24 小时），还可能是某个事件过去的时间或两个事件之间的时间间隔（可大于 24 小时，或者甚至为负）。]]></description><category></category></item><item><title><![CDATA[Mysql慢查询分析及优化]]></title><link>https://blog.youkuaiyun.com/s_frozen/article/details/129031350</link><guid>https://blog.youkuaiyun.com/s_frozen/article/details/129031350</guid><author>s_frozen</author><pubDate>Tue, 14 Feb 2023 17:58:28 +0800</pubDate><description><![CDATA[慢查询，顾名思义，执行很慢的查询。当执行SQL超过long_query_time参数设定的时间阈值（默认10s）时，就被认为是慢查询，这个SQL语句就是需要优化的。慢查询被记录在慢查询日志里。慢查询日志默认是不开启的。如果需要优化SQL语句，就可以开启这个功能，它可以让你很容易地知道哪些语句是需要优化的。]]></description><category></category></item><item><title><![CDATA[Mysql四大特性和事务]]></title><link>https://blog.youkuaiyun.com/s_frozen/article/details/129031366</link><guid>https://blog.youkuaiyun.com/s_frozen/article/details/129031366</guid><author>s_frozen</author><pubDate>Tue, 14 Feb 2023 17:57:59 +0800</pubDate><description><![CDATA[把一组密不可分的操作系列集合在一起，这些操作要么全部执行，要么全部不执行。]]></description><category></category></item></channel></rss>