PythonのORMフレームワークの使い方は何ですか?
Pythonにおいては、ORM(Object-Relational Mapping)フレームワークが使用され、データベース中のデータをPythonオブジェクトにマッピングすることで、プログラマーがオブジェクト指向の方法でデータベースを操作することが可能となり、SQL文を直接書く必要がありません。
Pythonでよく使われるORMフレームワークには、SQLAlchemy、Django ORM、Peeweeなどがあります。
ORMフレームワークを使用する一般的な手順は次のとおりです。
- Pythonクラスを定義することによって、データベース内のテーブルをクラスにマッピングするモデルクラスを定義します。クラスの属性はテーブルのフィールドに対応し、クラスのメソッドはテーブル操作(追加、削除、更新、検索)に対応します。
- ORMフレームワークのAPIを使用して、データベースとの接続を確立します。
- 表の構造を作成するためには、モデルクラスに基づいて、ORMフレームワークの提供するメソッドを呼び出すことで、対応するテーブル構造を作成します。
- モデルクラスのメソッドを呼び出すことで、データベースの操作を行うことができます。たとえば、オブジェクトを作成し、データベースに保存する、オブジェクトのプロパティを更新して保存する、条件に基づいてデータベースを検索するなどがあります。
- プログラムが終了する際に、データベースの接続を閉じます。
SQLAlchemyをORMフレームワークとして使用した例を以下に示します。
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
# 创建引擎
engine = create_engine('数据库连接字符串')
# 创建会话
Session = sessionmaker(bind=engine)
session = Session()
# 创建基类
Base = declarative_base()
# 定义模型类
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
age = Column(Integer)
# 创建表结构
Base.metadata.create_all(engine)
# 增删改查操作
user = User(name='Alice', age=20)
session.add(user)
session.commit()
user.age = 22
session.commit()
users = session.query(User).filter(User.age > 18).all()
for user in users:
print(user.name, user.age)
# 关闭会话
session.close()
例の中で、最初にデータベースエンジンとセッションを作成し、モデルクラスUserを定義して、その後、モデルクラスに基づいてテーブル構造を作成し、追加、削除、更新、検索の操作を実行しました。最後にセッションを閉じました。