在python中执行sql语句写入MySQL ,最稳定的方式
时间: 2024-09-30 17:06:01 浏览: 34
在Python中执行SQL写入MySQL,为了保证稳定性,推荐使用ORM(Object-Relational Mapping)框架,如SQLAlchemy或Django ORM,它们提供了高级别的接口来处理数据库操作。以下是使用SQLAlchemy进行写入操作的一个稳定示例:
1. 首先安装必要的库,如果你还没有安装的话:
```bash
pip install sqlalchemy pymysql
```
2. 设置数据库连接和Session:
```python
from sqlalchemy import create_engine, Table, MetaData, insert
from sqlalchemy.orm import sessionmaker
# 数据库连接信息
engine = create_engine('mysql+mysqldb://user:pass@host:port/dbname')
# 创建Session实例
Session = sessionmaker(bind=engine)
session = Session()
```
3. 定义ORM映射(假设有个名为`User`的表):
```python
metadata = MetaData()
User = Table('User', metadata,
autoload_with=engine, # 自动加载表结构
autoload_replace=True # 若表结构有改动,则自动替换
)
```
4. 插入或更新数据:
```python
new_user_data = {'id': 1, 'name': 'John Doe', 'email': 'john.doe@example.com'}
# 使用insert()创建一个新的记录
ins = insert(User).values(new_user_data)
new_record = session.execute(ins)
# 或者更新已有的记录
update_stmt = User.update().where(User.c.id == 1).values(name='Updated Name')
updated_records = session.execute(update_stmt)
# 提交事务
if session.begin():
session.commit()
else:
session.rollback()
```
5. 关闭Session:
```python
session.close()
```
这样的方式可以避免手动拼接SQL语句导致的安全风险,并且对错误有更好的控制,如事务管理、异常处理等。
阅读全文