Python连接不同数据库的总结
Python连接不同数据库的总结
在数据驱动的现代应用开发中,Python凭借其丰富的库和强大的生态系统,成为连接各种数据库的理想编程语言。本文将深入探讨Python连接不同类型数据库的方法、常用库以及关键注意事项。
一、连接MySQL数据库
MySQL是广泛使用的关系型数据库。在Python中,可使用mysql - connector - python
库来实现连接。
- 安装库:通过
pip install mysql - connector - python
进行安装。 - 连接示例:
import mysql.connector# 建立连接
mydb = mysql.connector.connect(host="localhost",user="your_username",password="your_password",database="your_database"
)# 创建游标
mycursor = mydb.cursor()# 执行SQL查询
mycursor.execute("SELECT * FROM your_table")# 获取结果
results = mycursor.fetchall()
for row in results:print(row)# 关闭连接
mycursor.close()
mydb.close()
在这个示例中,首先使用mysql.connector.connect()
方法建立与MySQL数据库的连接,传入主机、用户名、密码和数据库名等参数。接着创建游标,通过游标执行SQL查询,使用fetchall()
方法获取所有查询结果,最后关闭游标和数据库连接,释放资源。
二、连接PostgreSQL数据库
PostgreSQL以其强大的功能和扩展性闻名。Python中使用psycopg2
库连接PostgreSQL。
- 安装库:
pip install psycopg2
- 连接示例:
import psycopg2# 建立连接
conn = psycopg2.connect(host="localhost",database="your_database",user="your_username",password="your_password",port="5432"
)# 创建游标
cur = conn.cursor()# 执行SQL查询
cur.execute("SELECT * FROM your_table")# 获取结果
results = cur.fetchall()
for row in results:print(row)# 关闭游标和连接
cur.close()
conn.close()
与MySQL连接类似,使用psycopg2.connect()
方法建立连接,注意这里需要指定端口号(默认5432)。创建游标后执行SQL查询并获取结果,最后关闭连接。
三、连接SQLite数据库
SQLite是轻量级嵌入式数据库,Python内置了sqlite3
库,无需额外安装。
- 连接示例:
import sqlite3# 建立连接
conn = sqlite3.connect('your_database.db')# 创建游标
cur = conn.cursor()# 执行SQL查询
cur.execute("SELECT * FROM your_table")# 获取结果
results = cur.fetchall()
for row in results:print(row)# 关闭游标和连接
cur.close()
conn.close()
使用sqlite3.connect()
方法连接SQLite数据库,只需传入数据库文件名(如果文件不存在则会创建)。之后的操作与其他数据库类似。
四、连接MongoDB数据库
MongoDB是流行的非关系型(文档型)数据库。Python使用pymongo
库连接MongoDB。
- 安装库:
pip install pymongo
- 连接示例:
from pymongo import MongoClient# 建立连接
client = MongoClient("mongodb://localhost:27017/")# 选择数据库
db = client["your_database"]# 选择集合(相当于表)
collection = db["your_collection"]# 查询文档
results = collection.find()
for doc in results:print(doc)# 关闭连接
client.close()
使用MongoClient
建立与MongoDB的连接,传入MongoDB的地址和端口(默认27017)。通过client
对象选择数据库和集合,使用find()
方法查询文档。
五、连接Redis数据库
Redis是内存数据存储,常用于缓存和消息队列。Python使用redis - py
库连接Redis。
- 安装库:
pip install redis
- 连接示例:
import redis# 建立连接
r = redis.Redis(host='localhost', port=6379, db=0)# 设置键值对
r.set('key', 'value')# 获取值
value = r.get('key')
print(value)# 关闭连接(在某些情况下可不显式关闭)
r.close()
使用redis.Redis()
方法建立连接,传入主机、端口(默认6379)和数据库编号。通过set()
和get()
方法进行数据的设置和获取。
六、总结与注意事项
- 连接参数:不同数据库连接时的参数略有不同,如MySQL需要指定用户名、密码、主机、数据库名;MongoDB需要指定地址和端口等。确保参数准确无误,否则会导致连接失败。
- 异常处理:在连接和操作数据库时,可能会遇到各种异常,如网络问题、权限不足等。应使用
try - except
块进行异常处理,提高程序的稳定性和健壮性。 - 资源管理:连接数据库后,要及时关闭游标和连接,释放资源。尤其是在高并发或长时间运行的程序中,不恰当的资源管理可能导致资源耗尽。
- 安全性:避免在代码中硬编码数据库密码,可使用环境变量或配置文件来存储敏感信息。同时,对用户输入进行严格的过滤和验证,防止SQL注入等安全漏洞。
Python连接不同数据库的方法虽然各有差异,但基本步骤相似。通过掌握这些连接方法和注意事项,开发者能够根据项目需求灵活选择合适的数据库,并高效地进行数据交互。
相关文章:
Python连接不同数据库的总结
Python连接不同数据库的总结 在数据驱动的现代应用开发中,Python凭借其丰富的库和强大的生态系统,成为连接各种数据库的理想编程语言。本文将深入探讨Python连接不同类型数据库的方法、常用库以及关键注意事项。 一、连接MySQL数据库 MySQL是广泛使用…...

web直播弹幕抓取分析 signature
声明: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 前言 最近遇到太多难点了卡了很久&am…...

Linux ftrace 内核跟踪入门
文章目录 ftrace介绍开启ftraceftrace使用ftrace跟踪指定内核函数ftrace跟踪指定pid ftrace原理ftrace与stracetrace-cmd 工具KernelShark参考 ftrace介绍 Ftrace is an internal tracer designed to help out developers and designers of systems to find what is going on i…...

1Panel应用推荐:WordPress开源博客软件和内容管理系统
1Panel(github.com/1Panel-dev/1Panel)是一款现代化、开源的Linux服务器运维管理面板,它致力于通过开源的方式,帮助用户简化建站与运维管理流程。为了方便广大用户快捷安装部署相关软件应用,1Panel特别开通应用商店&am…...

【数据结构-C语言】绪论
文章目录 一、前言二、基本概念和术语2.1 数据元素、数据项和数据对象2.2 数据结构2.2.1 逻辑结构2.2.2 存储结构 2.3 时间复杂度 一、前言 数据结构部分是根据严蔚敏老师的《数据结构-C语言版第2版》书中内容整理的。 二、基本概念和术语 2.1 数据元素、数据项和数据对象 …...
java poi Excel 文件导入导出常见错误及解决方案
在使用 Apache POI 进行 Excel 文件的导入导出操作时,可能会遇到各种问题。以下是一些常见的错误及其解决方案: 一、文件格式相关问题 1. 文件格式不兼容 问题描述:尝试使用 HSSFWorkbook 读取 .xlsx 文件,或者使用 XSSFWorkbo…...
深入浅出DeepSeek LLM 以长远主义拓展开源语言模型
深入浅出地讲解DeepSeek LLM 以长远主义拓展开源语言模型 🌟 1. 什么是 DeepSeek LLM? 大家想象一下,你在游戏里要打造一个超级英雄角色,选择最强的装备、技能点和升级策略。那么,DeepSeek LLM 就是 AI 界的“超级英雄…...
【Leetcode 每日一题】59. 螺旋矩阵 II
问题背景 给你一个正整数 n n n,生成一个包含 1 1 1 到 n 2 n ^ 2 n2 所有元素,且元素按顺时针顺序螺旋排列的 n n n \times n nn 正方形矩阵 m a t r i x matrix matrix。 数据约束 1 n 20 1 \times n \times 20 1n20 解题过程 定义方向数组…...
回退 android studio emulator 的版本
前情提要 最近用 frida 需要一个完全跑 arm64 的手机 os,因为雷电实时转义 arm 到 x64 的方案本质上还是 x64,会导致 frida 有 bug。查了一下有帖子说 android studio 自带的模拟器支持直接跑 arm64 的镜像 (Other Images) 直接跑跑不通,调…...
数据资产的管理与价值释放
引言:从 “黑金” 到 “数据” 的文明跃迁 在探讨数字资产的未来之前,我们不妨先回顾一下黄金在人类历史长河中的角色。黄金,这种闪耀着独特光芒的金属,从远古时代起就与人类文明紧密相连。在古埃及,黄金被视为太阳神…...

部署夜景增强模型Learning to See in the Dark以及gradio UI编程方法
前面我们已经把Learning to See in the Dark的paper和原理进行了解读,现在把Learning to See in the Dark(后续简称SID模型)部署看一下效果。 这篇文章选择的部署方式是gradio 本地pytorch直接推理。先看一下效果: 对单个文件进…...

【报错解决】MySQL报错:sql_mode=only_full_group_by
文章目录 报错信息 DataGrip 报错还原Navicat 报错还原 报错原因解决方案 查看当前 sql mode方案一:临时解决方案二:永久解决方案三:使用 any_value() 或 group_concat()方案四:调整实现思路,避开 GROUP BY 使用 我…...

【大数据技术】用户行为日志分析(python+hadoop+mapreduce+yarn+hive)
用户行为日志分析(pythonhadoopmapreduceyarnhive) 搭建完全分布式高可用大数据集群(VMwareCentOSFinalShell) 搭建完全分布式高可用大数据集群(HadoopMapReduceYarn) 本机PyCharm远程连接虚拟机Python …...

[Day 16]螺旋遍历二维数组
今天我们看一下力扣上的这个题目:146.螺旋遍历二维数组 题目描述: 给定一个二维数组 array,请返回「螺旋遍历」该数组的结果。 螺旋遍历:从左上角开始,按照 向右、向下、向左、向上 的顺序 依次 提取元素,…...
大模型的底层逻辑及Transformer架构
一、大模型的底层逻辑 1.数据驱动 大模型依赖海量的数据进行训练,数据的质量和数量直接影响模型的性能。通过大量的数据,模型能够学习到丰富的模式和规律,从而更好地处理各种任务。 2.深度学习架构 大模型基于深度学习技术,通常采用多层神经网络进行特征学习与抽象。其中…...

数据结构-基础
1、概念: 程序 数据结构 算法 2、程序的好坏 可读性,稳定性,扩展性,时间复杂度,空间复杂度。 3、数据结构 是指存储、组织数据的方式,以便高效地进行访问和修改。通过选择适当的数据结构, 能…...
SystemUI中NavigationBar分析
需求 SystemUI是一个与系统组件显示紧密相关的应用,包含快捷中心、消息通知、状态栏、导航栏、任务中心等诸多模块,本文介绍NavigationBar模块。SystemUI源码位于/frameworks/base/packages/SystemUI,Android13平台。NavigationBar显示如下&…...

MySQL的底层原理与架构
前言 了解MySQL的架构和原理对于很多的后续很多的操作会有很大的帮助与理解。并且很多知识都与底层架构相关联。 了解MySQL架构 通过上面的架构图可以得知,Server层中主要由 连接器、查询缓存、解析器/分析器、优化器、执行器 几部分组成的,下面将主要…...

三极管的截止、放大、饱和区
三极管的几个区,都有什么用: 截止区:晶体管不导通,用于开关电路的“关”状态。 放大区:晶体管用于信号放大,集电极电流与基极电流成正比。 饱和区:晶体管完全导通,用于开关电路的“…...
2025-2-7-算法学习(一) 动态规划-习题1 300.最长递增子序列
文章目录 算法学习(一) 动态规划-习题1 300.最长递增子序列(1)题目(2)举例:(3)提示(4)分析(5)动态规划代码:&a…...

行业案例 | OPPO借助Azure AI Speech国际服务实现音频文件智能转录
OPPO是全球领先的智能终端与移动互联网服务提供商,业务覆盖50余国,通过超40万销售网点和2500个服务中心与全球用户共享科技。作为软硬服一体化科技公司,OPPO以ColorOS为核心优化软件平台,为4.4亿月活用户打造智能操作系统…...

一元函数积分
1. 不同名函数积分 2.三角函数有理式...

AI产品风向标:从「工具属性」到「认知引擎」的架构跃迁
近年来,人工智能正在改变法律行业的游戏规则。从最初的“工具属性”——帮律师干些重复的杂活儿,到如今逐渐变身为“认知引擎”——能够理解法律逻辑、分析案例,法律AI产品正在迎来一场华丽的转身。这篇文章将带你一探究竟,看看这…...

【ISP算法精粹】动手实战:用 Python 实现 Bayer 图像的黑电平校正
在数字成像领域,图像信号处理器(ISP)如同幕后英雄,默默将传感器捕获的原始数据转化为精美的图像。而黑电平校正,作为ISP预处理流程中的关键一环,直接影响着最终图像的质量。今天,我们就通过Pyth…...

C++ 之 多态 【虚函数表、多态的原理、动态绑定与静态绑定】
目录 前言 1.多态的原理 1.1虚函数表 1.2派生类中的虚表 1.3虚函数、虚表存放位置 1.4多态的原理 1.5多态条件的思考 2.动态绑定与静态绑定 3.单继承和虚继承中的虚函数表 3.1单继承中的虚函数表 3.2多继承(非菱形继承)中的虚函数表 4.问答题 前言 需要声明的&#x…...

2_MCU开发环境搭建-配置MDK兼容Keil4和C51
MCU开发环境搭建-配置MDK兼容Keil4和C51 一、概述 本文以MDK-ARM V5.36版本基础介绍DMK-ARM工程兼容Keil4和C51的配置。 注:在阅读本文前,请先安装和配置完成MDK-ARM(Keil5)。 二、工具包下载 链接: https://pan.baidu.com/s/1Tu2tDD6zRra4xb_PuA1Wsw 提取码: 81pp 三、…...

【深度学习】12. VIT与GPT 模型与语言生成:从 GPT-1 到 GPT4
VIT与GPT 模型与语言生成:从 GPT-1 到 GPT4 本教程将介绍 GPT 系列模型的发展历程、结构原理、训练方式以及人类反馈强化学习(RLHF)对生成对齐的改进。内容涵盖 GPT-1、GPT-2、GPT-3、GPT-3.5(InstructGPT)、ChatGPT …...

Spring框架学习day6--事务管理
Spring事务管理 Spring事务管理是在AOP的基础上,当我们的方法完全执行成功后,再提交事务,如果方法中有异常,就不提交事务 Spring中的事务管理有两种方式: 1.编程式事务 需要我们在业务代码中手动提交 2.声明式…...
小白的进阶之路系列之九----人工智能从初步到精通pytorch综合运用的讲解第二部分
张量是PyTorch中的核心数据抽象。这个交互式笔记本提供了一个深入的介绍torch. Tensor 类., 首先,让我们导入PyTorch模块。我们还将添加Python的数学模块来简化一些示例。 import torch import math创建张量 创建张量最简单的方法是调用torch.empty(): x = torch.empty(…...
NodeJS全栈开发面试题讲解——P5前端能力(React/Vue + API调用)
✅ 5.1 如何使用 React/Vue 发起后端请求?用什么库? 面试官您好,在实际项目中我们通常使用 axios、fetch 或框架提供的封装库发起后端请求。 🔧 常用库对比: 库框架适配优点axios通用默认支持拦截器、取消请求、请求体…...