Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
如何使用Python连接PostgreSQL?psycopg2_创想鸟

如何使用Python连接PostgreSQL?psycopg2

要使用python连接postgresql数据库,最常用且稳健的方式是使用psycopg2库。1. 首先安装psycopg2或更便捷的psycopg2-binary;2. 使用psycopg2.connect()方法建立连接,传入host、database、user、password和port等参数;3. 创建游标对象执行sql语句;4. 操作完成后提交事务并关闭连接。为保障安全,应避免将数据库连接参数硬编码在代码中,推荐使用环境变量、.env配置文件(配合python-dotenv)或配置管理服务(如vault、aws secrets manager)。错误处理方面,需通过try…except…finally结构捕获psycopg2.error及其子类异常,并在出错时回滚事务。事务管理上,必须显式调用connection.commit()提交更改或connection.rollback()撤销操作。高级用法包括:使用参数化查询防止sql注入;选择dictcursor或namedtuplecursor提升结果可读性;使用连接池(如psycopg2.pool)优化高并发性能;异步场景下考虑asyncpg替代psycopg2。这些实践能显著增强代码安全性、稳定性和性能。

如何使用Python连接PostgreSQL?psycopg2

连接Python与PostgreSQL数据库,最常用也最稳健的选择就是psycopg2库。它提供了一个非常直接且符合DB-API 2.0规范的接口,让你能够像操作本地对象一样操作数据库。核心在于先安装psycopg2,然后通过psycopg2.connect()建立连接,接着创建游标执行SQL语句,最后别忘了提交事务并关闭连接。这套流程一旦掌握,数据库操作就变得清晰可控。

如何使用Python连接PostgreSQL?psycopg2

解决方案

要使用psycopg2连接PostgreSQL,你首先需要安装它。我个人偏好安装psycopg2-binary,因为它省去了编译C语言扩展的麻烦,对于大多数用户来说,这简直是福音。

pip install psycopg2-binary

接下来,就是编写Python代码。一个典型的连接、查询和关闭的流程会是这样:

立即学习“Python免费学习笔记(深入)”;

如何使用Python连接PostgreSQL?psycopg2

import psycopg2from psycopg2 import Error# 数据库连接参数# 在实际项目中,这些参数绝不应该硬编码,后面我会聊聊如何安全管理DB_HOST = "localhost"DB_NAME = "your_database_name"DB_USER = "your_username"DB_PASSWORD = "your_password"DB_PORT = "5432" # PostgreSQL默认端口connection = None # 初始化连接变量cursor = None     # 初始化游标变量try:    # 建立数据库连接    connection = psycopg2.connect(        host=DB_HOST,        database=DB_NAME,        user=DB_USER,        password=DB_PASSWORD,        port=DB_PORT    )    # 创建一个游标对象,用于执行SQL命令    # 默认游标返回的是元组,如果需要字典形式的结果,可以使用 psycopg2.extras.DictCursor    cursor = connection.cursor()    # 示例1:创建一个表(如果不存在)    create_table_query = """    CREATE TABLE IF NOT EXISTS users (        id SERIAL PRIMARY KEY,        name VARCHAR(100) NOT NULL,        email VARCHAR(100) UNIQUE    );    """    cursor.execute(create_table_query)    connection.commit() # 提交事务,使更改生效    print("表 'users' 已创建或已存在。")    # 示例2:插入数据    # 注意:这里使用参数化查询(%s),这是防止SQL注入的关键!    insert_query = "INSERT INTO users (name, email) VALUES (%s, %s);"    user_data = ("张三", "zhangsan@example.com")    cursor.execute(insert_query, user_data)    connection.commit()    print("数据插入成功。")    # 示例3:查询数据    select_query = "SELECT id, name, email FROM users WHERE name = %s;"    cursor.execute(select_query, ("张三",))    # 获取所有查询结果    records = cursor.fetchall()    print("n查询结果:")    for row in records:        print(f"ID: {row[0]}, 姓名: {row[1]}, 邮箱: {row[2]}")except (Exception, Error) as error:    print(f"连接或操作数据库时发生错误: {error}")    if connection:        connection.rollback() # 发生错误时回滚事务finally:    # 无论成功或失败,都确保关闭游标和连接    if cursor:        cursor.close()    if connection:        connection.close()    print("PostgreSQL连接已关闭。")

PostgreSQL连接参数如何安全配置与管理?

说实话,把数据库的账号密码直接写在代码里,那简直是给自己挖坑。在实际开发中,尤其是在团队协作和部署到生产环境时,连接参数的安全管理是头等大事。我通常会考虑几种方案,它们各有优劣。

最常见的参数包括:host(数据库服务器地址,如localhost或IP)、database(要连接的数据库名)、user(用户名)、password(密码)以及port(端口,PostgreSQL默认是5432)。

如何使用Python连接PostgreSQL?psycopg2

至于安全配置,我强烈推荐以下几种方式,优先级从高到低:

环境变量 (Environment Variables): 这是最推荐的方式。将数据库凭证设置为操作系统的环境变量,你的代码运行时直接读取这些变量。例如:export DB_USER=myuser。代码中通过os.environ.get('DB_USER')来获取。这样做的好处是代码库里完全不包含敏感信息,且在不同环境(开发、测试、生产)部署时,只需修改环境变量即可,无需改动代码。我个人觉得,虽然初始设置有点麻烦,但长期来看,它最干净。

配置文件 (.env files with python-dotenv): 对于本地开发环境,或者不方便设置系统环境变量的场景,使用.env文件配合python-dotenv库是个不错的折衷方案。你创建一个.env文件(记得把它添加到.gitignore里,绝不能提交到版本控制!),里面写上DB_USER=myuser,然后Python代码里用dotenv_values()或load_dotenv()来加载。

# .env 文件示例DB_HOST=localhostDB_NAME=mydbDB_USER=myuserDB_PASSWORD=mypasswordDB_PORT=5432
# Python代码from dotenv import load_dotenvimport osload_dotenv() # 加载 .env 文件中的环境变量DB_HOST = os.getenv("DB_HOST")DB_NAME = os.getenv("DB_NAME")# ... 其他参数

这种方式兼顾了便捷性和安全性,很适合项目初期。

配置管理服务 (如Vault, AWS Secrets Manager): 对于大型企业级应用,或者需要更高级别安全策略的场景,会引入专门的秘密管理服务。这些服务能够动态生成、轮换凭证,并提供细粒度的访问控制。虽然集成起来更复杂,但安全性达到了最高级别。这通常是架构师和运维团队会考虑的。

无论哪种方式,核心原则都是:敏感信息绝不能硬编码在代码中,更不能提交到版本控制系统。 我见过太多因为不小心把凭证推到GitHub而引发的安全事故,那种感觉就像是把家门钥匙直接挂在了大街上。

数据库操作中如何处理常见错误和事务?

在和数据库打交道时,错误和事务管理是两个绕不开的话题。我个人觉得,一个健壮的数据库交互代码,必须把这两点考虑进去,否则迟早会遇到数据不一致或者程序崩溃的问题。

错误处理

psycopg2在执行SQL操作时,如果遇到问题,会抛出psycopg2.Error或其子类的异常。最常见的错误类型包括:

psycopg2.IntegrityError: 当你尝试插入重复的主键、违反唯一约束或外键约束时。比如,你试图插入一个邮箱地址已经存在的用户。psycopg2.ProgrammingError: SQL语法错误、表或列不存在等。psycopg2.OperationalError: 连接问题,如数据库服务器宕机、网络不通等。

我的经验是,使用try...except...finally结构是处理数据库错误的黄金法则。

try:    # 数据库操作,比如插入一条可能违反唯一约束的数据    cursor.execute("INSERT INTO users (name, email) VALUES (%s, %s);", ("李四", "zhangsan@example.com"))    connection.commit()except psycopg2.IntegrityError as e:    print(f"数据完整性错误:{e}")    if connection:        connection.rollback() # 发生完整性错误时,回滚当前事务except psycopg2.ProgrammingError as e:    print(f"SQL编程错误:{e}")    if connection:        connection.rollback()except psycopg2.Error as e: # 捕获所有psycopg2相关的错误    print(f"数据库操作通用错误:{e}")    if connection:        connection.rollback()except Exception as e: # 捕获其他任何Python异常    print(f"未知错误:{e}")    if connection:        connection.rollback()finally:    # 确保资源被释放    if cursor:        cursor.close()    if connection:        connection.close()

关键在于,一旦发生错误,特别是影响数据状态的错误(如插入、更新、删除),你几乎总是需要调用connection.rollback()。这能撤销当前事务中所有未提交的更改,保证数据库回到操作前的状态,避免数据不一致。

事务管理

事务(Transaction)是数据库操作中一个非常重要的概念,它确保了一组操作要么全部成功,要么全部失败,从而维护数据的完整性和一致性。PostgreSQL默认是自动提交模式,但psycopg2默认是手动提交,这意味着你需要显式地调用connection.commit()来保存更改。

connection.commit(): 当你执行了INSERT、UPDATE、DELETE或CREATE TABLE等修改数据库状态的SQL语句后,必须调用commit()才能将这些更改永久保存到数据库中。如果没有调用,即使代码执行成功,这些更改也只存在于当前会话的内存中,一旦连接关闭,所有更改都会丢失。我刚开始用的时候就犯过这个错,查了半天数据没进去,结果发现是忘了commit。connection.rollback(): 当一组操作中的任何一个失败,或者你决定放弃当前事务中的所有更改时,调用rollback()可以撤销所有自上次commit()以来或自连接建立以来的所有操作。这对于错误恢复至关重要。

一个典型的事务流程:

开始事务(psycopg2连接后默认就处于一个事务中)。执行一系列SQL操作(比如先插入订单,再更新库存)。如果所有操作都成功,调用connection.commit()。如果任何一个操作失败,或者捕获到异常,调用connection.rollback()。

try:    # 假设这是一个转账操作:从A扣钱,给B加钱    cursor.execute("UPDATE accounts SET balance = balance - 100 WHERE user_id = %s;", (1,))    # 模拟一个错误,比如B用户不存在,或者网络断了    # raise Exception("模拟网络错误")    cursor.execute("UPDATE accounts SET balance = balance + 100 WHERE user_id = %s;", (2,))    connection.commit() # 两步都成功,才提交    print("转账成功!")except Exception as e:    print(f"转账失败:{e}")    connection.rollback() # 任何一步失败,都回滚    print("事务已回滚。")

理解并正确使用commit()和rollback()是编写可靠数据库应用程序的基石。

除了基本的CRUD,psycopg2还有哪些高级用法或注意事项?

psycopg2不仅仅是提供CRUD(创建、读取、更新、删除)操作的基础,它还有一些高级特性和最佳实践,能够让你的代码更健壮、更高效。我个人在项目中会特别关注以下几点:

SQL注入防护:参数化查询 (%s)这是最重要的!永远不要直接将用户输入或任何动态值拼接到SQL字符串中。psycopg2提供了参数化查询机制,使用%s作为占位符,然后将参数作为execute()方法的第二个参数(一个元组或列表)传递。psycopg2会自动为你处理转义,有效防止SQL注入攻击。

# 错误示范:存在SQL注入风险# user_input = "'; DROP TABLE users; --"# cursor.execute(f"SELECT * FROM users WHERE name = '{user_input}'")# 正确且安全的做法:使用参数化查询user_name = "Alice"cursor.execute("SELECT * FROM users WHERE name = %s;", (user_name,))

这个习惯,必须养成。我见过太多因为忽视这一点而导致的安全漏洞,后果不堪设想。

游标类型:DictCursor与NamedTupleCursor默认的cursor对象在fetchall()或fetchone()时返回的是元组。如果你想以字典形式访问结果(比如row['column_name']而不是row[0]),可以使用psycopg2.extras.DictCursor。

from psycopg2.extras import DictCursor# ... 连接代码 ...cursor = connection.cursor(cursor_factory=DictCursor)cursor.execute("SELECT id, name, email FROM users;")records = cursor.fetchall()for row in records:    print(f"ID: {row['id']}, 姓名: {row['name']}, 邮箱: {row['email']}")

对于更严格的类型检查和IDE自动补全,NamedTupleCursor也是一个不错的选择。选择哪种取决于你的项目习惯和需求,但它们都比纯元组更具可读性。

连接池 (psycopg2.pool)频繁地建立和关闭数据库连接会带来性能开销。在Web应用或高并发场景下,使用连接池是标准做法。连接池预先创建并维护一定数量的数据库连接,当应用程序需要连接时,直接从池中获取一个可用的连接,用完后再归还到池中,而不是关闭。psycopg2.pool模块提供了SimpleConnectionPool和ThreadedConnectionPool等。

from psycopg2.pool import SimpleConnectionPool# 创建连接池,最少1个连接,最多20个连接connection_pool = SimpleConnectionPool(1, 20,                                       host=DB_HOST,                                       database=DB_NAME,                                       user=DB_USER,                                       password=DB_PASSWORD,                                       port=DB_PORT)conn = Nonetry:    conn = connection_pool.getconn() # 从池中获取一个连接    cursor = conn.cursor()    cursor.execute("SELECT version();")    print(cursor.fetchone())except Exception as e:    print(f"连接池操作错误: {e}")finally:    if conn:        connection_pool.putconn(conn) # 将连接归还到池中    # 在程序结束时,记得关闭连接池    # connection_pool.closeall()

我个人觉得,对于任何稍微有点规模的应用,连接池都是必须的。它能显著提升性能和资源利用率。

异步操作 (AsyncPG)虽然psycopg2本身是同步的,但如果你正在构建一个基于asyncio的异步Python应用,直接使用psycopg2会阻塞事件循环。在这种情况下,通常会选择asyncpg这个库,它是专门为异步PostgreSQL操作设计的,性能非常出色。虽然它不是psycopg2的一部分,但在讨论psycopg2的高级场景时,提到它非常有必要,因为它解决了psycopg2在异步环境下的痛点。

这些高级用法和注意事项,往往是在你从“能用”到“好用”甚至“生产可用”的路上,需要逐步掌握和实践的。一开始可能觉得复杂,但一旦用起来,你会发现它们能解决很多实际问题,让你的代码更健壮、更高效。

以上就是如何使用Python连接PostgreSQL?psycopg2的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1363171.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
如何用Python构建数据监控—异常检测报警系统
上一篇 2025年12月14日 03:16:09
如何使用Python处理PDF文件?PyPDF2操作指南
下一篇 2025年12月14日 03:16:19

相关推荐

  • 设置Apache FOP字体相对路径:使用fop.xconf配置跨平台字体

    设置Apache FOP字体相对路径:使用fop.xconf配置跨平台字体设置Apache FOP字体相对路径:使用fop.xconf配置跨平台字体设置Apache FOP字体相对路径:使用fop.xconf配置跨平台字体设置Apache FOP字体相对路径:使用fop.xconf配置跨平台字体

    Apache FOP在不同操作系统下配置字体时,使用绝对路径会遇到兼容性问题。本文详细介绍如何在fop.xconf中利用标签和相对embed-url属性,灵活指定字体文件的相对路径,确保应用程序在多种环境中都能正确加载和渲染字体,避免硬编码路径,提升可移植性。 FOP字体配置的跨平台挑战 在使用ap…

    2026年9月27日 • 用户投稿
    500
  • sublime怎么配置git_Sublime Text集成Git版本控制教程

    sublime怎么配置git_Sublime Text集成Git版本控制教程sublime怎么配置git_Sublime Text集成Git版本控制教程sublime怎么配置git_Sublime Text集成Git版本控制教程sublime怎么配置git_Sublime Text集成Git版本控制教程

    Sublime Text 本身不内置 Git 功能,但可以通过插件和外部 Git 环境实现集成。以下是配置 Sublime Text 使用 Git 的完整方法,帮助你在编辑器中便捷地进行版本控制操作。 1. 安装并配置 Git 环境 确保你的系统已安装 Git,并能通过命令行使用: Windows:…

    2026年9月27日 • 用户投稿
    100
  • win8如何分区硬盘_Win8硬盘分区教程

    win8如何分区硬盘_Win8硬盘分区教程win8如何分区硬盘_Win8硬盘分区教程win8如何分区硬盘_Win8硬盘分区教程win8如何分区硬盘_Win8硬盘分区教程

    首先打开磁盘管理工具,通过压缩卷释放未分配空间或删除分区清空区域,再利用新建简单卷向导设置大小、分配盘符并格式化为NTFS,从而完成分区创建或重组。 如果您希望在Windows 8系统中对硬盘进行重新规划,以便更好地管理文件或安装多个操作系统,则可以通过系统自带的磁盘管理工具来创建、调整或删除分区。…

    2026年9月27日 • 用户投稿
    100
  • 怎样让 AI 模型持续改进工具与豆包配合进行改进?全流程指南​

    怎样让 AI 模型持续改进工具与豆包配合进行改进?全流程指南​怎样让 AI 模型持续改进工具与豆包配合进行改进?全流程指南​怎样让 AI 模型持续改进工具与豆包配合进行改进?全流程指南​怎样让 AI 模型持续改进工具与豆包配合进行改进?全流程指南​

    要让ai模型与豆包配合更好,需通过持续反馈、调优和迭代实现。1. 明确使用场景并设定目标,记录问题并打标签以指导优化方向;2. 善用豆包反馈机制,具体描述问题并定期分析反馈记录;3. 进阶用户可结合结构化外部数据进行微调并通过a/b测试验证效果;4. 优化提示词设计,明确角色、格式和逻辑顺序,提升交…

    2026年9月27日 • 用户投稿
    000
  • 高通:95%的用户愿为搭载骁龙心片的高端手机溢价买单

    高通:95%的用户愿为搭载骁龙心片的高端手机溢价买单高通:95%的用户愿为搭载骁龙心片的高端手机溢价买单高通:95%的用户愿为搭载骁龙心片的高端手机溢价买单高通:95%的用户愿为搭载骁龙心片的高端手机溢价买单

    在骁龙峰会2025上,高通高级副总裁don mcguire表示,最新调研显示,84%的消费者认为搭载骁龙处理器的笔记本表现出色,具备强大性能;同时,95%的用户愿意为配备骁龙移动平台的高端智能手机支付更高价格。 据CNMO了解,骁龙品牌在多个市场已展现出强劲影响力。根据CyberMedia Rese…

    2026年9月27日 • 用户投稿
    000
  • Sublime运行Python代码中文乱码_修改默认编码格式解决方案

    Sublime运行Python代码中文乱码_修改默认编码格式解决方案Sublime运行Python代码中文乱码_修改默认编码格式解决方案Sublime运行Python代码中文乱码_修改默认编码格式解决方案Sublime运行Python代码中文乱码_修改默认编码格式解决方案

    答案是修改文件编码声明、配置Sublime构建系统、更改系统区域设置或输出到文件。首先在Python文件首行添加# — coding: utf-8 –,然后在Sublime中创建自定义构建系统并设置环境变量PYTHONIOENCODING为utf-8,接着可调整Windows…

    2026年9月27日 • 用户投稿
    000
  • 就业培训里PHP+MySQL安全开发的讲解深度

    php+mysql安全开发的讲解深度应包括:1)基础安全措施的详细讲解,2)常见攻击类型和防范方法的深入探讨,3)最佳实践和开发习惯的培养,以提升学员的技术技能和安全意识。 在就业培训中,关于PHP+MySQL安全开发的讲解深度是一个非常关键的话题。这不仅关系到学员能否掌握必要的技能,也直接影响到他…

    2026年9月27日
    000
  • Java在Windows CMD终端实现ANSI颜色输出的策略与实践

    Java在Windows CMD终端实现ANSI颜色输出的策略与实践Java在Windows CMD终端实现ANSI颜色输出的策略与实践Java在Windows CMD终端实现ANSI颜色输出的策略与实践Java在Windows CMD终端实现ANSI颜色输出的策略与实践

    本文深入探讨了Java程序在Windows CMD终端中无法正确显示ANSI颜色代码的问题,并提供了两种有效的解决方案。针对不同Java版本和需求,我们介绍了通过外部命令(如echo)代理输出的兼容性方法,以及利用Java 22+ Foreign Function & Memory API直…

    2026年9月27日 • 用户投稿
    000
  • 夸克AI搜索和普通搜索的区别_夸克新旧搜索模式对比分析

    夸克AI搜索和普通搜索的区别_夸克新旧搜索模式对比分析夸克AI搜索和普通搜索的区别_夸克新旧搜索模式对比分析夸克AI搜索和普通搜索的区别_夸克新旧搜索模式对比分析夸克AI搜索和普通搜索的区别_夸克新旧搜索模式对比分析

    AI搜索通过理解意图生成直接答案,如夸克采用“先思考后搜索”策略,整合多源信息提供结构化回答。1、与传统关键词匹配不同,AI搜索输出分点建议等归纳内容。2、支持多轮对话与上下文追溯,可连续追问并准确识别指代对象。3、集成AI写作、文件总结等功能,实现从检索到任务解决的跃迁。4、在个性化推荐中强化隐私…

    2026年9月27日 • 用户投稿
    200
  • 联想 moto razr 50 Ultra AI 元启版哥特玫瑰限定版上市

    联想 moto razr 50 Ultra AI 元启版哥特玫瑰限定版上市联想 moto razr 50 Ultra AI 元启版哥特玫瑰限定版上市联想 moto razr 50 Ultra AI 元启版哥特玫瑰限定版上市联想 moto razr 50 Ultra AI 元启版哥特玫瑰限定版上市

    9 月 5 日,摩托罗拉手机官方宣布,联想 moto razr 50 ultra ai 元启版全新潘通流行色限定版——哥特玫瑰上市!提供 16gb+1tb 一种内存组合,售价 6999 元。 联想 moto razr 50 Ultra AI 元启版 小折叠屏手机 4.0 英寸外屏,1272 × 10…

    2026年9月27日 • 用户投稿
    000
  • sublime怎么关联文件类型_Sublime Text设置特定文件扩展名的默认语法

    sublime怎么关联文件类型_Sublime Text设置特定文件扩展名的默认语法sublime怎么关联文件类型_Sublime Text设置特定文件扩展名的默认语法sublime怎么关联文件类型_Sublime Text设置特定文件扩展名的默认语法sublime怎么关联文件类型_Sublime Text设置特定文件扩展名的默认语法

    在Sublime Text中设置特定文件扩展名的默认语法:打开文件后点击右下角语法名称,选择所需模式并设为该扩展名默认;2. 可通过编辑Packages/User/Preferences.sublime-settings文件添加extensions映射,指定.log用Plain Text、.myco…

    2026年9月27日 • 用户投稿
    100
  • 豆包AI如何实现自动化部署?CI/CD流程优化方案

    豆包AI如何实现自动化部署?CI/CD流程优化方案豆包AI如何实现自动化部署?CI/CD流程优化方案豆包AI如何实现自动化部署?CI/CD流程优化方案豆包AI如何实现自动化部署?CI/CD流程优化方案

    豆包ai的自动化部署通过标准化流程和工具链整合实现,其核心是利用ci/cd机制打通开发、测试、构建、发布等环节。1. ci/cd是指持续集成与持续交付/部署,确保代码提交后自动构建、测试并部署到相应环境,提升效率并减少人为错误。2. 关键步骤包括:代码提交触发ci、自动构建镜像、运行测试、部署至目标…

    2026年9月27日 • 用户投稿
    100
  • win10服务主机本地系统占用CPU过高_Svchost.exe进程导致CPU占用率高的解决方法

    win10服务主机本地系统占用CPU过高_Svchost.exe进程导致CPU占用率高的解决方法win10服务主机本地系统占用CPU过高_Svchost.exe进程导致CPU占用率高的解决方法win10服务主机本地系统占用CPU过高_Svchost.exe进程导致CPU占用率高的解决方法win10服务主机本地系统占用CPU过高_Svchost.exe进程导致CPU占用率高的解决方法

    首先定位高CPU占用的svchost.exe进程,通过任务管理器“详细信息”选项卡排序CPU使用率,右键高占用进程选择“转到服务”以识别具体关联服务;接着禁用常引发问题的Connected User Experiences and Telemetry(DiagTrack)服务,并将Windows U…

    2026年9月27日 • 用户投稿
    200
  • 摸头杀后又发力!印度动作冒险新作《Son of Thanjai》宣传PV公开

    摸头杀后又发力!印度动作冒险新作《Son of Thanjai》宣传PV公开摸头杀后又发力!印度动作冒险新作《Son of Thanjai》宣传PV公开摸头杀后又发力!印度动作冒险新作《Son of Thanjai》宣传PV公开摸头杀后又发力!印度动作冒险新作《Son of Thanjai》宣传PV公开

    近日,印度首款3a级大作《释放阿凡达》在发布实机演示后迅速走红网络,主角行云流水般的闪避动作搭配“摸头杀”炫技场面,瞬间引爆话题,引发大量二次创作热潮。 就在热度持续攀升之际,又一款来自印度的重磅游戏登场!PS官方近日发布了《Son of Thanjai》的正式宣传视频,带来全新视觉冲击,快一起来感…

    2026年9月27日 • 用户投稿
    000
  • 解决Spring Boot与React应用在AWS部署中CORS错误的终极指南

    解决Spring Boot与React应用在AWS部署中CORS错误的终极指南解决Spring Boot与React应用在AWS部署中CORS错误的终极指南解决Spring Boot与React应用在AWS部署中CORS错误的终极指南解决Spring Boot与React应用在AWS部署中CORS错误的终极指南

    本文旨在解决在Spring Boot后端(AWS EC2)和React前端(AWS S3)部署时,即使服务器端已配置宽松的CORS策略,仍出现跨域资源共享(CORS)错误的问题。我们将深入探讨常见误区,并提供一个将CORS配置与Spring Security有效整合的专业解决方案,同时强调处理wit…

    2026年9月27日 • 用户投稿
    100
  • 雷鸟手机(雷鸟手机)

    雷鸟手机(雷鸟手机)雷鸟手机(雷鸟手机)雷鸟手机(雷鸟手机)雷鸟手机(雷鸟手机)

    随着智能手机的日益普及,人们对于手机品牌的要求也越来越高。雷鸟手机作为一家新兴的手机品牌,在市场上取得了显著的成绩。本文将从雷鸟手机的品牌介绍、产品特点、技术创新、用户口碑等多个方面进行详细的介绍。 降重鸟 要想效果好,就用降重鸟。AI改写智能降低AIGC率和重复率。 113 查看详情 一、雷鸟手机…

    2026年9月27日 • 用户投稿
    100
  • 电脑内存超过 4GB,安装 32 位系统和 64 位系统有什么区别?

    电脑内存超过 4GB,安装 32 位系统和 64 位系统有什么区别?电脑内存超过 4GB,安装 32 位系统和 64 位系统有什么区别?电脑内存超过 4GB,安装 32 位系统和 64 位系统有什么区别?电脑内存超过 4GB,安装 32 位系统和 64 位系统有什么区别?

    64位系统能充分利用大内存并提升性能与安全性。当内存超过4GB时,32位系统受限于4GB寻址上限,仅能使用约3.5GB,造成资源浪费;而64位系统可完全利用8GB、16GB等大内存,显著提升多任务处理和运行效率。此外,64位架构支持更宽数据总线、更多寄存器及SSE/AVX指令集,增强计算能力,尤其利…

    2026年9月27日 • 用户投稿
    000
  • 在Java中实现ANSI颜色输出:解决CMD终端兼容性问题

    在Java中实现ANSI颜色输出:解决CMD终端兼容性问题在Java中实现ANSI颜色输出:解决CMD终端兼容性问题在Java中实现ANSI颜色输出:解决CMD终端兼容性问题在Java中实现ANSI颜色输出:解决CMD终端兼容性问题

    本文深入探讨了Java程序在Windows CMD终端中无法正确显示ANSI颜色代码的原因,并提供了两种有效的解决方案。首先,介绍通过外部命令cmd /c echo实现跨版本兼容的着色输出;其次,针对Java 22及更高版本,详细讲解如何利用Foreign Function & Memory…

    2026年9月27日 • 用户投稿
    000
  • AI绘图工具生成的图片会有版权问题吗?2025解答

    AI绘图工具生成的图片会有版权问题吗?2025解答AI绘图工具生成的图片会有版权问题吗?2025解答AI绘图工具生成的图片会有版权问题吗?2025解答AI绘图工具生成的图片会有版权问题吗?2025解答

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ AI绘图工具生成的图片,其版权归属问题在2025年来看,依旧是一个复杂且不断演进的法律议题,并没有一个简单的“是”或“否”的答案。核心在于,目前主流的法律实践和司法判例倾向于认为,纯粹由AI自主…

    2026年9月27日 • 用户投稿
    000
  • 怎么用豆包AI帮我转换编程语言 3分钟学会用AI实现代码语言自动转换

    怎么用豆包AI帮我转换编程语言 3分钟学会用AI实现代码语言自动转换怎么用豆包AI帮我转换编程语言 3分钟学会用AI实现代码语言自动转换怎么用豆包AI帮我转换编程语言 3分钟学会用AI实现代码语言自动转换怎么用豆包AI帮我转换编程语言 3分钟学会用AI实现代码语言自动转换

    豆包ai实现代码语言自动转换的方法如下:1. 准备好原始代码并明确标注目标语言,确保代码无语法错误且功能清晰;2. 使用豆包ai的对话功能进行提问,粘贴代码并准确描述转换需求,避免模糊指令;3. 检查转换后的代码是否可用,通过通读、运行测试用例及对比行为差异进行验证,如有问题可继续向ai反馈修改。 …

    2026年9月27日 • 用户投稿
    000

发表回复

登录后才能评论
关注微信