改为SQLAlchemy版本
时间: 2024-10-10 19:11:47 浏览: 34
Flask中sqlalchemy模块的实例用法
要将上述 `shmysql.py.txt` 中基于原生 MySQL API (通过 PyMySQL 使用) 的类转换为使用 SQLAlchemy ORM(对象关系映射)的方式,可以按照以下步骤进行:
1. 安装并导入 SQLAlchemy 库。
2. 创建数据库引擎,并建立与数据库连接。
3. 定义数据模型(如果需要的话),这涉及到定义 Python 类来表示数据库中的表结构。
4. 使用会话管理事务。
以下是将 `shmysql.py.txt` 文件中的功能转化为 SQLAlchemy 版本的一个简单示例。请注意,这里假设我们只需要一个基本的数据访问接口用于执行一些 CRUD 操作,并且已经存在了一个 JSON 配置文件(如 `shmysql.json`)来存储数据库连接详情。
```python
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
import json
Base = declarative_base()
class User(Base):
# 假设有一个名为 user 的表
__tablename__ = 'user'
id = Column(Integer, primary_key=True)
name = Column(String(50))
age = Column(Integer)
class ShMysql:
def __init__(self):
with open('./shmysql.json','r', encoding='utf8') as fp:
config = json.load(fp)
db_url = f"mysql+pymysql://{config['user']}:{config['password']}@{config['host']}:{config['port']}/{config['database']}"
engine = create_engine(db_url, echo=False)
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
self.session = Session()
def add_user(self, name, age):
new_user = User(name=name, age=age)
self.session.add(new_user)
self.session.commit()
def query_users(self):
result = self.session.query(User).all()
for user in result:
print(f"{user.name}, {user.age}")
def close(self):
self.session.close()
# 示例用法
if __name__ == "__main__":
sm = ShMysql()
sm.add_user('Alice', 28)
sm.query_users()
sm.close()
```
这个例子展示了如何创建一个简单的 SQLAlchemy 数据访问层,包括添加和查询用户的两个基本操作。实际应用中可能还需要考虑更多细节,比如错误处理等。
阅读全文