【AI总结】python连接MySQL(1)- Python连接MySQL:驱动库与ORM框架全面指南

Python+Flask+Word2Vec+CNN:电影评论情感分析系统完整实战 自然语言处理与文本情感分析是人工智能领域的重要分支,其核心在于让机器理解非结构化文本中的主观情绪。在技术实现上,Word2Vec作为一种词向量模型,能将文本转化为低维稠密向量,捕捉词语间的语义关联;而卷积神经网络(CNN)则擅长提取局部特征,在文本分类任务中表现出色。两者的结合有效弥补了传统情感词典方法覆盖面窄、迁移性差的短板,为影评分析、舆情监测等场景提供了可靠的解决方案。基于Python生态,使用Flask搭建轻量级Web服务,完成用户交互与系统展示,可实现从评论输入、情感预测到结果可视化的完整闭环。本 阅读详情

Python连接MySQL:驱动库与ORM框架全面指南

摘要:本文详解Python操作MySQL的两种方式——原生驱动库与ORM框架,对比主流工具并提供实战代码示例,助你高效管理数据库!


一、为什么需要连接MySQL?

Python在数据分析、Web开发等领域广泛应用,而MySQL作为最流行的开源关系型数据库,其与Python的交互必不可少。操作方式主要分两类:

  1. 原生驱动库:直接执行SQL语句,灵活高效
  2. ORM框架:对象关系映射,用Python类操作数据库,提升开发效率

二、原生驱动库推荐及实战

1. mysql-connector-python(Oracle官方维护)

# 安装:pip install mysql-connector-python
import mysql.connector

config = {
  "user": "root",
  "password": "123456",
  "host": "localhost",
  "database": "test_db"
}

try:
    conn = mysql.connector.connect(**config)
    cursor = conn.cursor()
    cursor.execute("SELECT * FROM users WHERE age > %s", (20,))
    print(cursor.fetchall())  # 输出查询结果
except Exception as e:
    print(f"Database error: {e}")
finally:
    cursor.close()
    conn.close()

2. PyMySQL(纯Python实现,兼容性好)

# 安装:pip install pymysql
import pymysql

conn = pymysql.connect(
    host='localhost', 
    user='root',
    password='123456',
    database='test_db'
)
with conn.cursor() as cursor:
    cursor.execute("INSERT INTO users (name, age) VALUES (%s, %s)", ('Alice', 25))
    conn.commit()  # 提交事务

三、ORM框架:用Python类操作数据库

1. SQLAlchemy(企业级首选)

# 安装:pip install sqlalchemy pymysql
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import declarative_base, sessionmaker

Base = declarative_base()

class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    name = Column(String(30))
    age = Column(Integer)

# 连接数据库(格式:mysql+pymysql://user:password@host/db)
engine = create_engine("mysql+pymysql://root:123456@localhost/test_db")
Base.metadata.create_all(engine)  # 自动建表

# 操作数据
Session = sessionmaker(bind=engine)
session = Session()
new_user = User(name="Bob", age=30)
session.add(new_user)
session.commit()

# 查询数据
users = session.query(User).filter(User.age > 20).all()

2. Peewee(轻量级,适合快速开发)

# 安装:pip install peewee pymysql
from peewee import *

db = MySQLDatabase('test_db', user='root', password='123456', host='localhost')

class User(Model):
    name = CharField()
    age = IntegerField()
    
    class Meta:
        database = db

db.connect()
db.create_tables([User])  # 创建表

# 插入数据
User.create(name="Charlie", age=28)

# 查询数据
query = User.select().where(User.age > 25)
for user in query:
    print(user.name, user.age)

3. Django ORM(Django项目内置)

# 在Django项目的models.py中定义
from django.db import models

class User(models.Model):
    name = models.CharField(max_length=30)
    age = models.IntegerField()

# 命令行生成迁移文件并执行
# python manage.py makemigrations
# python manage.py migrate

# 在视图函数中使用
users = User.objects.filter(age__gt=20)

四、对比总结:如何选择?

工具类型代表库适用场景
原生驱动PyMySQL需要精细控制SQL/高性能查询
全能ORMSQLAlchemy大型项目/复杂事务处理
轻量ORMPeewee快速原型开发/小型应用
全栈框架内置ORMDjango ORM使用Django开发Web应用

性能建议:高频写入场景用原生驱动,复杂业务逻辑用ORM提升可维护性。


五、常见问题解决方案

  1. 连接超时:

    # 在connect参数中添加超时设置
    conn = pymysql.connect(..., connect_timeout=10)
    
  2. 中文乱码:
    连接字符串添加编码参数:

    mysql+pymysql://root:123456@localhost/test_db?charset=utf8mb4
    
  3. ORM批量插入优化:

    # SQLAlchemy批量插入
    session.bulk_save_objects([User(name=f"user{i}") for i in range(1000)])
    session.commit()
    

结语:根据项目需求灵活选择工具,小型项目可用Peewee快速迭代,企业级系统推荐SQLAlchemy。掌握原生SQL与ORM的双重技能,才是Python工程师的终极武器!

技术栈扩展:

  • 异步支持:aiomysql + SQLAlchemy 1.4+
  • 数据库迁移:Alembic(配合SQLAlchemy)
  • 连接池:SQLAlchemy自带连接池 / DBUtils

GitHub资源:


关键词:Python MySQL、ORM框架、SQLAlchemy教程、PyMySQL示例、数据库连接

(完)

Solidworks钣金设计:折弯系数、K因子与折弯扣除的实战应用解析 本文深入解析Solidworks钣金设计中折弯系数、K因子与折弯扣除的核心概念与实战应用。通过厘清三者间的逻辑关系与换算方法,并结合材料特性、工艺参数及车间实测,指导工程师精准确定展开长度,确保设计图纸与加工实物的一致性,有效提升钣金件设计精度与生产效率。 阅读详情

相关推荐

【首份】2023年30米分辨率土地利用遥感监测数据

为了恢复和重建我国土地利用变化的现代过程,更好地预测、预报土地利用变化趋势,地球资源数据云以美国陆地卫星Landsat 遥感影像数据作为主信息源,结合Sentinel系列数据,通过人工目视解译和机器学习方法,建立了国家尺度1:10 万比例尺多时期土地利用/土地覆盖遥感监测数据库(CNLUCC)因早期Landsat数据时空覆盖缺失,1972-1977年合成第一期数据,1978-1985年合成第二期数据,1986年起每年度生成一期数据。投影:Albers正轴等面积双标准纬线圆锥投影南标准纬线:25°N。

地球资源数据云的官方博客 3663

python基础之ORM操作Mysql数据库

执行这个命令后,`sqlacodegen` 工具将根据指定的表名和连接信息,生成一个 Python 模型文件。它会根据你提供的数据库连接信息和要生成模型的表名,自动生成相应的 Python 类。它提供了一个统一的 API,使得开发人员可以使用相同的代码来操作不同的数据库,而无需关心数据库的具体细节。目前sqlacodegen库和flask-sqlacodegen库对SQLalchemy库的版本要求不一样,不能同时安装这两个库,如果需要请在虚拟环境中使用。(1)导入所需的库,以及索要操作的数据库表对象。

鑫哥 1106

Ubuntu 20.04 LTS下5分钟搞定ONLYOFFICE协作空间社区版(Docker版保姆级教程)

本文提供了一份在Ubuntu 20.04 LTS系统上,通过Docker快速部署ONLYOFFICE协作空间社区版的保姆级教程。内容涵盖从系统准备、Docker环境搭建,到执行自动化安装脚本、完成Web初始化的全流程,并详细说明了部署后的安全配置、数据备份及基本运维要点,帮助用户高效构建私有、安全、可控的团队文档协作平台。

weixin_28826961的博客 260

Python操作Mysql基础与ORM

文章目录前言:Python基础操作MysqlORM操作MySQL创建/删除数据库新增数据索引/基础/条件查询函数/多表/分组/去重/排序/分页更改/删除 前言: 无聊顺便把慕课的操作三大数据库看了 链接贴上: https://coding.imooc.com/class/chapter/507.html 三大常见的数据库,每次去操作要去翻看文档就很烦 然后就简单写了几个实战的脚本,看代码就知道该怎么做了 因为情况很多,万变不离其中,我就没封装成面向对象 (一部分是要考虑很多种情况,其次是相当于复习加固就是懒

恒Keep毅 2269

合成孔径雷达Chirp Scaling(CS)算法MATLAB仿真实现

本人也是初学《合成孔径雷达成像算法与实现》,在GitHub上下载的关于CS算法的代码,仔细读了读,发现中间有一些不合理之处,动手改了一改,重新写了一个代码供初学者学习,有什么问题留言即可。 非常感谢源代码的作者,虽然中间有少许不正确的地方,但是对我理解cs算法的帮助非常大,非常感谢!!! 代码中提到的(4.31)这种均是在《合成孔径雷达成像算法与实现》中的公式 以下是MATLAB的仿真程序,直接复...

weixin_41700188的博客 7850

ESP8266连接阿里云(STM32)

一、概述 之前通过串口调试助手+ESP8266已经连接上阿里云了 ESP8266连接阿里云(串口调试助手) 这次我们使用STM32+ESP8266来接入阿里云,其实本质上就是STM32和ESP8266进行串口通信,相当于使用STM32代替之前使用的串口调试助手来发送AT指令。只是发送的字符串数据可能有些细节需要注意一下。 二、保存连接的AT指令 定义几个字符串数据保存需要发送的AT指令 //注意: //末尾记得加\r\n //字符...

xyx0610的博客 4万+

python 操作MYSQL数据库 ORM框架:SQLAchemy

SQLAlchemy是python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果。SQLAlchemy本身无法操作数据库,其必须以来pymsql等第三方插件,Dialect用于和数据API进行交流,根据配置文件的不同调用不同的数据库API,从而实现对数据库的操作。规则:导入模块,生成一个基类,然后再用创建类的方法去创建表,sql语句中的语法,全部转换成了方法。代码 数据库。

weixin_45720992的博客 1031

笔记:使用Materials Studio计算聚合物的玻璃化转变温度

使用Materials Studio计算聚合物的玻璃化转变温度。

FXJgogogo的博客 1933

Python 进阶(二):Python使用ORM框架peewee操作MySQL数据库

Windows MySQL8.0免安装版,配置多个安装实例Peewee是一个简单而灵活的Python ORM(对象关系映射)框架,它提供了方便的接口和工具,用于在Python应用程序中进行数据库操作。Peewee支持多种数据库后端,包括MySQL、SQLite、PostgreSQL等,使得在不同数据库系统之间进行切换变得更加容易。使用Peewee进行数据库操作,需要定义数据表的模型类。每个模型类对应数据库中的一张表,并定义表中的字段以及其他相关属性。在上述示例中,定义了一个名为User。

后端开发 4915

monocle使用sct整合数据integration还是rna中的counts数据 轨迹分析 拟时序

【代码】monocle使用sct整合数据integration还是rna中的counts数据 轨迹分析 拟时序。

生信小博士的博客 1049

Python爬虫实战:逆向解析央视频加密参数(附完整代码)

本文详细解析了央视频加密体系的技术实现,通过Python逆向工程实战演示如何解密动态密钥、AES加密和自定义哈希算法等核心组件。文章提供完整代码示例,涵盖GUID生成、参数构造和异步请求处理,帮助开发者掌握现代视频平台的反爬机制破解方法。

weixin_42532473的博客 1128

MySQL(5):python连接MySQL数据库

使用方便:我们在使用ORM时,可以不关心用的是什么数据库,只专心关心业务逻辑。即使开发人员不会sql语句,也能与数据库进行交互。python中有一个ORM,即sqlalchemy,仿照的是Django框架的ORM。ORM,全称Object Relational Mapping,意为对象关系映射。:ORM生成的sql语句,不是最优的sql语句,执行效率会比较低。flask中有一个ORM插件:flask-sqlalchemy。

不愿意透露姓名的网友 6326

Nmap源码分析(端口扫描)

端口扫描是Nmap的核心功能,用于确定目标机的端口状态(开放、关闭、过滤等),也为Nmap的服务与版本扫描、OS扫描、脚本扫描提供基本的指引信息。所以,深入理解端口扫描的实现对分析其他的扫描方式很有帮助。 1简单回顾   首先简要回顾一下端口扫描的原理以及命令行选项。 1.1扫描原理   Nmap提供的10多种类型的端口扫描方法,如TCP SYN/ACK/FIN/Xmas/NULL/ Windows/Connect,FTP Bounce, Idle scan, UDP port u...

墨痕诉清风的博客 1596

【超详细教程】Python 连接 MySQL 全流程实战

Python + MySQL 是 Web 后端、数据分析、爬虫、AI 项目中最经典的组合。基于最新情况(Python 3.13+、MySQL 8.4/9.0、PyMySQL 1.1.2、mysql-connector-python 9.6.0、SQLAlchemy 2.1+),一步步带你走完全流程。

likuoelie的博客 747

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

aiomysql 源码架构解析:深入理解异步数据库驱动设计

**aiomysql** 是一个基于 asyncio 的 MySQL 数据库异步驱动库,它重新实现了 PyMySQL 的同步接口,为 Python 异步编程提供了完整的 MySQL 数据库访问能力。本文将深入解析 aiomysql 的源码架构,帮助你全面理解这个高性能异步数据库驱动的设计原理和实现细节。🚀 ## 🔍 aiomysql 核心架构概览 aiomysql 的核心设计理念是在保持

gitblog_00376的博客 526

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Rust+Tauri数据库客户端DBX:20MB轻量替代DBeaver/Navicat

数据库客户端工具是开发者与数据交互的基础载体,其核心在于连接稳定性、执行效率与跨平台一致性。传统Java/Electron架构因JVM开销、Chromium内存占用和动态插件机制,导致启动慢、体积大、兼容性差。Rust凭借零成本抽象与内存安全特性,结合Tauri调用系统原生WebView,实现了无VM、无GC、静态链接的极简架构——DBX即典型代表。它以20MB单文件支持80+数据库协议,启动<1.2秒,内存常驻<90MB,并内置AI SQL辅助、流式结果渲染与原子化备份等工程级能力。适用于DevOps自动

weixin_33806300的博客 225

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Java、C#、C++核心对比:从设计哲学到实战选型指南

在软件开发领域,编程语言是构建数字世界的基石,其设计哲学深刻影响着开发效率、系统性能与可维护性。从原理上看,语言通过不同的内存管理机制(如自动垃圾回收与手动管理)、运行时环境(虚拟机与原生编译)来平衡控制力与安全性。这种技术差异直接决定了其核心价值:是追求极致的性能与控制,还是侧重开发效率与生态完整性。因此,不同的语言自然适配于差异化的应用场景,例如企业级后端、云原生服务、系统软件或实时嵌入式开发。本文聚焦于Java、C#和C++这三大主流语言,深入剖析其各自的**内存管理**策略与**生态系统**构成,为

weixin_30565199的博客 564

使用Python ORM框架来操作MySQL

Python 还有另一种方式可以与 MySQL 进行交互,这种方式采用的是 ORM 框架。

weiye2012的博客 1438

Python操作Mysql之SQLAlchemy(ORM)

目录一、Python 操作 MySQL常见方式二、Flask-SQLAlchemy 扩展1、一个最小应用二、一对多(one-to-many)关系:ForeignKey用 Python 操作 MySQL很多种方式,比如:mysql-connecto、MySQLdb、mysqlclient、PyMySQL、peewee 和 SQLAIchemy 等,其中 mysql-connector是 MySQL 官方提供的驱动器,用来给后端语言,比如 Python 提供连接,这种基本就是写SQL语句的方式 ,简单的场景可以

rs勿忘初心的博客 2915

使用ORM模型操作MySQL数据库:Python爬虫数据持久化实践

ORM即对象关系映射,它是一种数据库抽象技术,使得开发者能够以编程语言中的对象的方式来操作数据库。Python社区中流行的ORM框架有SQLAlchemy和Django ORM等。定义一个模型,它映射到MySQL数据库中的一个表。# 定义基类# 定义Book模型,它对应于MySQL中的一个表__tablename__ = 'books' # 数据库中表的名字ORM提供了一种方便的方式来操作数据库,使得数据库操作更加直观和安全。

Web安全工具库 1102

Python 操作 MySQL 的5种方式

小编在这里分享些我自己平时的学习资料,由于篇幅限制,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!程序员代码面试指南 IT名企算法与数据结构题目最优解这是” 本程序员面试宝典!书中对IT名企代码面试各类题目的最优解进行了总结,并提供了相关代码实现。针对当前程序员面试缺乏权威题目汇总这一-痛点, 本书选取将近200道真实出现过的经典代码面试题,帮助广“大程序员的面试准备做到万无一失。“刷”完本书后,你就是“题王”!

2401_83601703的博客 4999

使用python ORM来操作MySQL

昨天的博客是用MySQL官方的MySQL-connector驱动来完成数据库的连接和使用,但只适用于小项目的操作,当项目规模增加时,代码会越来越复杂,维护成本也越来越高,此时需要一个更好的设计模式。即使用ROM框架来操作MySQL。 ORM英文是(Object Relation Mapping),中文意思是对象关系映射,它是RDBMS和业务实体对象之间的一个映射。换句话说,是将底层的RDBMS封装...

weixin_42564710的博客 1781

python使用SQLAlchemy进行mysql的ORM操作

现在很多的企业进行后端开发时,程序员在分析完业务后,会使用Java的SpringBoot或者Python的Django、Flask等网络框架进行项目开发。在这些网络框架业务逻辑代码编写的过程中,很大概率会需要使用到MySQL数据库,但是原生的SQL语句又存在被SQL注入的风险,而且在复杂的查询时,SQL语句也会变的复杂,可读性随之降低。这种概念是对象与关系式数据库的一种映射,简单的来说就是使用类(class)来进行一个数据库的映射。类名可以是表名,而类内部的属性就是数据库中的字段。

Lucas在澳洲 574

Python通过ORM方式操作MySQL数据库

文章目录ORM方式一、Python操作MySql1.1 读取数据1.2 插入数据1.3 条件查询1.3.1 查询所有1.3.2 查询个别1.3.3 limit()、all()、one()使用1.4 修改数据总结 ORM方式 ORM的全称是Object Relational Mapping,即对象关系映射。它的实现思想就是将关系数据库中表的数据映射成为对象,以对象的形式展现,这样开发人员就可以把对数据库的操作转化为对这些对象的操作。因此它的目的是为了方便开发人员以面向对象的思想来实现对数据库的操作 优点:

HG0724的博客 2056

Python 操作 MySQL 数据库的三个模块

下面代码中的一对多关系,relationship 定义在了 customer 表中,应该定义在 PurchaseOrder 更合理?

m0_73342362的博客 3168

python操作mysql框架_Python操作MySQL

本篇对于Python操作MySQL主要使用两种方式:原生模块 pymsqlORM框架 SQLAchemypymsqlpymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。下载安装使用操作1、执行SQL2、获取新创建数据自增ID3、获取查询数据注:在fetch数据时按照顺序进行,可以使用cursor.scroll(num,mode)来移动游标位置,如:cursor.s...

weixin_30580403的博客 899
上一篇: 【AI问答】python引入其他模块的对象
下一篇: 【AI总结】python连接MySQL(4)- 轻量级多数据库配置管理方案
荔枝吻
博客等级 码龄5年 533粉丝 161原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荔枝吻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值