<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[NQS__的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/NQS__</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; NQS__]]></copyright><item><title><![CDATA[python函数参数默认值为可变对象(例如{},[]等)的坑]]></title><link>https://blog.youkuaiyun.com/NQS__/article/details/137502051</link><guid>https://blog.youkuaiyun.com/NQS__/article/details/137502051</guid><author>NQS__</author><pubDate>Mon, 08 Apr 2024 11:37:49 +0800</pubDate><description><![CDATA[然而，当将可变对象作为默认参数时，需要注意到这个默认对象在函数调用过程中是共享的，这可能导致一些意外的行为。：如果在多个地方使用了同一个函数，并且使用了默认参数，那么这些地方都将共享同一个默认参数对象。如果在其中一个地方修改了默认参数，可能会影响到其他地方。：如果在函数内部修改了默认参数，这些修改会影响到后续函数调用中使用了默认参数的地方。为了避免这些潜在的问题，可以使用不可变对象作为默认参数，或者在函数内部创建一个新的可变对象。，并且在函数内部对它进行了修改，那么这些修改会在之后的函数调用中持续存在。]]></description><category></category></item><item><title><![CDATA[SQLAlchemy 来查询并统计 MySQL 中 JSON 字段的一个值]]></title><link>https://blog.youkuaiyun.com/NQS__/article/details/137264604</link><guid>https://blog.youkuaiyun.com/NQS__/article/details/137264604</guid><author>NQS__</author><pubDate>Tue, 02 Apr 2024 11:45:02 +0800</pubDate><description><![CDATA[在使用 SQLAlchemy 来查询并统计 MySQL 中 JSON 字段的一个值时，你可以结合 SQLAlchemy 的。：使用 SQLAlchemy 的查询接口和函数来提取 JSON 字段的值，并按这个值进行分组统计。首先，确保你已经安装了 SQLAlchemy。方法来进行分组统计。下面是如何在 SQLAlchemy 中实现这一点的基本步骤。的 JSON 类型字段，我们想要按照。：首先，创建一个数据库引擎来管理连接。：定义一个模型来映射到数据库中的表。的表，其中有一个名为。]]></description><category></category></item><item><title><![CDATA[使用 PyArmor 加密一个 Python 包]]></title><link>https://blog.youkuaiyun.com/NQS__/article/details/137264091</link><guid>https://blog.youkuaiyun.com/NQS__/article/details/137264091</guid><author>NQS__</author><pubDate>Tue, 02 Apr 2024 11:30:25 +0800</pubDate><description><![CDATA[这些选项可以帮助你更灵活地保护你的 Python 代码。记住，虽然加密可以提高你的代码保护级别，防止未经授权的查看和修改，但任何加密措施都不能提供 100% 的安全保障。加密应该被视为安全措施的一部分，而不是全部。选项来递归地加密指定目录下的所有 Python 文件。：加密过程可能会改变文件的结构，因此在部署加密后的包之前，建议充分测试以确保一切功能正常。：首先确保 PyArmor 已经被安装在你的环境中。目录下的所有 Python 文件，并将加密后的文件存放在。你可以将这个目录下的。]]></description><category></category></item><item><title><![CDATA[Git要修改某个特定提交（commit）的用户名和电子邮件信息]]></title><link>https://blog.youkuaiyun.com/NQS__/article/details/137083840</link><guid>https://blog.youkuaiyun.com/NQS__/article/details/137083840</guid><author>NQS__</author><pubDate>Wed, 27 Mar 2024 17:23:49 +0800</pubDate><description><![CDATA[要修改某个特定提交（commit）的用户名和电子邮件信息，你可以使用命令来修改最近的提交。如果需要修改历史中的某个特定提交，你可以使用git rebase命令进行更复杂的操作。]]></description><category></category></item><item><title><![CDATA[sqlalchemy.exc.CompileError: can‘t render element of type MEDIUMTEXT]]></title><link>https://blog.youkuaiyun.com/NQS__/article/details/137083263</link><guid>https://blog.youkuaiyun.com/NQS__/article/details/137083263</guid><author>NQS__</author><pubDate>Wed, 27 Mar 2024 17:08:57 +0800</pubDate><description><![CDATA[请注意，这种方法虽然解决了不同环境下数据库类型兼容性的问题，但它也使得你的模型定义依赖于特定的数据库实现，这可能会影响代码的可移植性和清晰度。因此，建议仅在确实需要处理特定数据库类型差异的情况下使用这种方法。的值来确定当前连接的数据库类型。然后，根据数据库类型动态选择列类型。如果是MySQL，我们使用。在测试环境和生产环境中使用不同的数据库，而不需要修改模型代码。想要实现测试环境使用sqlit方便开发；对于其他数据库类型，我们可以选择使用。如果是SQLite，我们使用。在这个例子中，我们首先检查。]]></description><category></category></item><item><title><![CDATA[pymysql.err.DataError: (1406, “Data too long for column ‘response‘ at row 2“)]]></title><link>https://blog.youkuaiyun.com/NQS__/article/details/137018861</link><guid>https://blog.youkuaiyun.com/NQS__/article/details/137018861</guid><author>NQS__</author><pubDate>Mon, 25 Mar 2024 17:31:49 +0800</pubDate><description><![CDATA[数据字段由TEXT修改为LONGTEXT。备注:mysql存储限制。原来是因为要存入这厮。]]></description><category></category></item><item><title><![CDATA[ssh: Could not resolve hostname ssh.github.com: Temporary failure in name resolutionfatal: Could no]]></title><link>https://blog.youkuaiyun.com/NQS__/article/details/137016157</link><guid>https://blog.youkuaiyun.com/NQS__/article/details/137016157</guid><author>NQS__</author><pubDate>Mon, 25 Mar 2024 15:40:47 +0800</pubDate><description><![CDATA[【代码】ssh: Could not resolve hostname ssh.github.com: Temporary failure in name resolutionfatal: Could no。]]></description><category></category></item><item><title><![CDATA[pymysql.err.OperationalError: (1055, “Expression #3 of SELECT list is not in GROUP BY clause and con]]></title><link>https://blog.youkuaiyun.com/NQS__/article/details/136947202</link><guid>https://blog.youkuaiyun.com/NQS__/article/details/136947202</guid><author>NQS__</author><pubDate>Fri, 22 Mar 2024 17:23:22 +0800</pubDate><description><![CDATA[报错如下问了AI，回答如下：这个错误信息指出的问题与 MySQL 的sql_mode设置有关，特别是模式。当启用了模式时，所有在SELECT列表中，但不在GROUP BY子句中的列，都必须在一个聚合函数内。这个模式的目的是确保当使用GROUP BY时，返回的结果是确定的，因为如果SELECT列表中有不在GROUP BY中的列，那么这些列的值在分组中可能有多个，而 MySQL 不知道应该返回哪个值。]]></description><category></category></item><item><title><![CDATA[element-UI展开行expand动态加载数据时遇到的坑-展开多行数据相同]]></title><link>https://blog.youkuaiyun.com/NQS__/article/details/136915826</link><guid>https://blog.youkuaiyun.com/NQS__/article/details/136915826</guid><author>NQS__</author><pubDate>Thu, 21 Mar 2024 17:59:59 +0800</pubDate><description><![CDATA[统计数据列表页，点击每行可以展开，因为数据量大，设计时后端考虑每次点击动态拉取该行对应的详情数据。]]></description><category></category></item><item><title><![CDATA[上万耗时任务处理方案-线程池]]></title><link>https://blog.youkuaiyun.com/NQS__/article/details/136655822</link><guid>https://blog.youkuaiyun.com/NQS__/article/details/136655822</guid><author>NQS__</author><pubDate>Tue, 12 Mar 2024 16:40:51 +0800</pubDate><description><![CDATA[废话不多说，代码如上。倒序讲下问题由来。]]></description><category></category></item><item><title><![CDATA[sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2013, ‘Lost connection to MySQL ser]]></title><link>https://blog.youkuaiyun.com/NQS__/article/details/136628731</link><guid>https://blog.youkuaiyun.com/NQS__/article/details/136628731</guid><author>NQS__</author><pubDate>Mon, 11 Mar 2024 17:26:45 +0800</pubDate><description><![CDATA[sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2013, 'Lost connection to MySQL server during query')]]></description><category></category></item><item><title><![CDATA[我的创作纪念日]]></title><link>https://blog.youkuaiyun.com/NQS__/article/details/136539432</link><guid>https://blog.youkuaiyun.com/NQS__/article/details/136539432</guid><author>NQS__</author><pubDate>Thu, 07 Mar 2024 17:07:13 +0800</pubDate><description><![CDATA[搞钱第一，其他都是虚的。]]></description><category></category></item><item><title><![CDATA[sqlalchemy默认数据库连接池限制导致的服务异常排查]]></title><link>https://blog.youkuaiyun.com/NQS__/article/details/136402812</link><guid>https://blog.youkuaiyun.com/NQS__/article/details/136402812</guid><author>NQS__</author><pubDate>Fri, 01 Mar 2024 17:54:33 +0800</pubDate><description><![CDATA[sqlalchemy的连接池默认设置pool_size=5， max_overflow=10。批量添加100个耗时任务，发现有成功执行仅有15个，找到报错log。考虑内存和cpu，合理设置以上2个参数。]]></description><category></category></item><item><title><![CDATA[sqlarchemy的json字段无法保存]]></title><link>https://blog.youkuaiyun.com/NQS__/article/details/136352575</link><guid>https://blog.youkuaiyun.com/NQS__/article/details/136352575</guid><author>NQS__</author><pubDate>Wed, 28 Feb 2024 17:57:51 +0800</pubDate><description><![CDATA[由于未正确触发 SQLAlchemy 的脏检查机制所致。在 SQLAlchemy 中，如果你直接修改了类似于字典这样的可变对象，并未触发其脏检查机制，那么在提交到数据库时，这些修改可能不会被记录下来。

为了确保 SQLAlchemy 能够正确地捕获对可变对象的修改，并在提交时保存这些修改，你需要确保正确地触发了脏检查机制]]></description><category></category></item><item><title><![CDATA[基于elment使用Vue封装动态表单组件]]></title><link>https://blog.youkuaiyun.com/NQS__/article/details/136250543</link><guid>https://blog.youkuaiyun.com/NQS__/article/details/136250543</guid><author>NQS__</author><pubDate>Fri, 23 Feb 2024 11:00:31 +0800</pubDate><description><![CDATA[不墨迹，直接上源码。]]></description><category></category></item><item><title><![CDATA[处理异常sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1038, ‘Out of sort memory]]></title><link>https://blog.youkuaiyun.com/NQS__/article/details/136040687</link><guid>https://blog.youkuaiyun.com/NQS__/article/details/136040687</guid><author>NQS__</author><pubDate>Mon, 05 Feb 2024 14:12:21 +0800</pubDate><description><![CDATA[前端查询列表页一直转圈圈，打开控制台发现是API 500了。看了下后端日志，核心问题是。前端试了下还是转圈，API依然500，又看了下后端日志,原来是mysql连接断开。修改mysql容器的配置。手动重启后端服务即可。]]></description><category></category></item><item><title><![CDATA[“export ‘ref‘ was not found in ‘vue‘]]></title><link>https://blog.youkuaiyun.com/NQS__/article/details/135826502</link><guid>https://blog.youkuaiyun.com/NQS__/article/details/135826502</guid><author>NQS__</author><pubDate>Wed, 24 Jan 2024 16:52:41 +0800</pubDate><description><![CDATA[【代码】“export ‘ref‘ was not found in ‘vue‘]]></description><category></category></item><item><title><![CDATA[docker中python3.10.5的subprocess.run子进程运行可执行文件报FileNotFoundError]]></title><link>https://blog.youkuaiyun.com/NQS__/article/details/135753953</link><guid>https://blog.youkuaiyun.com/NQS__/article/details/135753953</guid><author>NQS__</author><pubDate>Mon, 22 Jan 2024 17:56:13 +0800</pubDate><description><![CDATA[执行subprocess.run(['./xray_linux_amd64', 'webscan', '--basic-crawler', f'{url}', '--json-output', f'./reports/xray-{target_id}.json'], cwd=XRAY_PATH)手动执行下，找到这个文件，居然还报这个错，不可思议，瞪眼说瞎话。不是的，看了下源码问题不在这，所以这个报错很有误导性！原来是坑爹的精简版系统引发的奇怪报错！然并卵，还是一样的报错！运行，然后果然成功！]]></description><category></category></item><item><title><![CDATA[记一次docker镜像瘦身]]></title><link>https://blog.youkuaiyun.com/NQS__/article/details/135746111</link><guid>https://blog.youkuaiyun.com/NQS__/article/details/135746111</guid><author>NQS__</author><pubDate>Mon, 22 Jan 2024 13:52:29 +0800</pubDate><description><![CDATA[全栈开发，想着把前端托管到nginx和后端服务整合成一个镜像。基础镜像找了个把自己依赖装好，\docker容器瘦身。]]></description><category></category></item><item><title><![CDATA[fastapi后台任务中使用多线程调用数据库session报错]]></title><link>https://blog.youkuaiyun.com/NQS__/article/details/135701235</link><guid>https://blog.youkuaiyun.com/NQS__/article/details/135701235</guid><author>NQS__</author><pubDate>Fri, 19 Jan 2024 16:37:41 +0800</pubDate><description><![CDATA[望着代码陷入自我怀疑，再三确认了多线程的代码没问题，想起来如题的坑，于是在子线程的函数中加入try catch，通过logging主动捕获并打印出异常。批量耗时任务创建的api，最开始采用for循环串行执行耗时任务，使用的是请求初始化时的数据库session，技术上没问题。于是修改子线程函数，增加参数，接受一个新创建的会话。上来直接改造多线程，发现子线程很快stoped，根本没执行。但业务上需要优化成并发。终于，世界恢复平静！]]></description><category></category></item></channel></rss>