pycharm python sqlalchemy mysql增删改查实例csdn

在Python中使用SQLAlchemy与MySQL进行数据库操作,在PyCharm中实现增删改查(CRUD)操作,你需要按照以下步骤进行:

步骤 1: 安装必要的库

首先,确保你已经安装了SQLAlchemymysqlclientpymysql。你可以通过pip安装这些库:

复制代码
pip install sqlalchemy mysqlclient 
# 或者使用 pymysql 
pip install sqlalchemy pymysql

步骤 2: 创建数据库连接

在你的Python脚本中,首先需要创建到MySQL数据库的连接。

复制代码
from sqlalchemy import create_engine 
from sqlalchemy.orm import sessionmaker 
from sqlalchemy.ext.declarative import declarative_base 
from sqlalchemy import Column, Integer, String 

# 定义数据库连接字符串 
DATABASE_URL = "mysql+mysqlconnector://username:password@localhost/dbname" 
# 或者使用 pymysql 
# DATABASE_URL = "mysql+pymysql://username:password@localhost/dbname" 

# 创建数据库引擎 
engine = create_engine(DATABASE_URL) 
Session = sessionmaker(bind=engine) 
session = Session() 

Base = declarative_base()

步骤 3: 定义模型(ORM)

定义一个或多个模型(ORM类),这些类将映射到数据库表。

复制代码
class User(Base): 
    __tablename__ = 'users' 
    id = Column(Integer, primary_key=True) 
    name = Column(String(50)) 
    age = Column(Integer)

步骤 4: 创建表(可选)

如果你还没有创建表,可以通过下面的代码创建表:

复制代码
Base.metadata.create_all(engine)

步骤 5: 执行CRUD操作

增加(Create)
复制代码
new_user = User(name='Alice', age=30) 
session.add(new_user) 
session.commit(
读取(Read)
复制代码
user = session.query(User).filter_by(name='Alice').first() 
print(user.name, user.age)
更新(Update)
复制代码
user = session.query(User).filter_by(name='Alice').first() 
if user: 
   user.age = 31 
   # 更新年龄为31岁 
   session.commit() 
   # 提交更改到数据
删除(Delete)
复制代码
user = session.query(User).filter_by(name='Alice').first() 
if user: 
   session.delete(user) 
   # 删除用户Alice的记录 
   session.commit() 
   # 提交更改到数据库

步骤 6: 关闭会话(重要)

在完成数据库操作后,不要忘记关闭会话:

复制代码
session.close() 
# 或者使用 
session.close_all() 
来关闭所有会话(如果你使用了多个会话)

完整示例代码:

将上述步骤整合到一个完整的脚本中:

复制代码
from sqlalchemy import create_engine, Column, Integer, String, func, and_, or_ 
# 可能需要的导入项增加了一些额外的导入项以展示更多功能。例如:and_, or_用于更复杂的查询。
func用于SQL函数。根据需要添加更多。确保你已经定义了User类。
如果你使用的是pymysql,确保在创建引擎时使用了正确的URL格式。
例如:DATABASE_URL = "mysql+pymysql://username:password@localhost/dbname" 。
如果你使用的是mysqlclient,则不需要更改URL格式。
只需确保安装了mysqlclient包。如果你使用的是其他MySQL驱动,
如mysql-connector-python,则应相应地更改URL格式为"mysql+mysqlconnector://..."。
确保根据你的数据库配置替换username、password和dbname。
如果你使用的是其他驱动,请确保正确地安装了相应的库(例如pymysql或mysqlclient)。
如果你使用的是较新版本的SQLAlchemy和MySQL驱动,可能需要调整导入语句或连接字符串格式。
始终参考最新的SQLAlchemy文档和MySQL驱动文档以获取最新信息。
如果你遇到连接问题,请检查你的数据库用户权限和防火墙设置。
如果你使用的是Docker容器或云数据库服务,请确保你的数据库URL是正确的,
并且你的PyCharm项目配置了正确的解释器和环境变量。如果你使用的是远程数据库,
请确保你的网络连接是可用的,并且你的数据库服务器监听在正确的端口上。
如果你在Windows系统上遇到问题,请确保你的

python

from sqlalchemy import create_engine, Column, Integer, String, func, and_, or_ # 可能需要的导入项增加了一些额外的导入项以展示更多功能。例如:and_, or_用于更复杂的查询。func用于SQL函数。根据需要添加更多。确保你已经定义了User类。如果你使用的是pymysql,确保在创建引擎时使用了正确的URL格式。例如:DATABASE_URL = "mysql+pymysql://username:password@localhost/dbname" 。如果你使用的是mysqlclient,则不需要更改URL格式。只需确保安装了mysqlclient包。如果你使用的是其他MySQL驱动,如mysql-connector-python,则应相应地更改URL格式为"mysql+mysqlconnector://..."。确保根据你的数据库配置替换username、password和dbname。如果你使用的是其他驱动,请确保正确地安装了相应的库(例如pymysql或mysqlclient)。如果你使用的是较新版本的SQLAlchemy和MySQL驱动,可能需要调整导入语句或连接字符串格式。始终参考最新的SQLAlchemy文档和MySQL驱动文档以获取最新信息。如果你遇到连接问题,请检查你的数据库用户权限和防火墙设置。如果你使用的是Docker容器或云数据库服务,请确保你的数据库URL是正确的,并且你的PyCharm项目配置了正确的解释器和环境变量。如果你使用的是远程数据库,请确保你的网络连接是可用的,并且你的数据库服务器监听在正确的端口上。如果你在Windows系统上遇到问题,请确保你的

收起

相关推荐
2501_9336707916 分钟前
2026秋招数据分析岗备考路线:SQL、BI、项目与面试题拆解
数据库
我要见SA姐13 小时前
告别 Copilot?Codex 本地化部署指南
运维·数据库·机器学习·oracle·回归
xcLeigh3 小时前
聊聊国产化替换:好用数据迁移工具KDMS怎么帮咱们搞定评估难
数据库·sql·数据迁移·kes·kdms
Elastic 中国社区官方博客4 小时前
列式存储并不等同于列式数据库。Columnar 模式为 Elasticsearch 带来了什么
大数据·运维·数据库·elasticsearch·搜索引擎
我要见SA姐14 小时前
用 Claude Code 重构遗留系统:从评估到落地的完整实践指南
数据库·ide·vscode·oracle·编辑器
Nturmoils6 小时前
一份 KDMS 评估报告,怎样排出迁移先后顺序
数据库
这个DBA有点耶6 小时前
异构数据集成怎么做?5 种同步方案对比 + 金融级 CDC 实战解析
数据库·oracle·架构
独泪了无痕6 小时前
SQL函数实战:GREATEST与LEAST的技巧
数据库·sql·mysql
码少女6 小时前
Linux--多路转接之select
java·服务器·数据库
梁辰兴7 小时前
软件工程:软件维护的副作用
数据库·软件工程·梁辰兴·控制方法·软件维护的副作用·副作用类型·副作用原因