Python數(shù)據(jù)庫映射是一種常用的編程技術(shù),它允許程序員使用Python對象與數(shù)據(jù)庫表之間建立映射關(guān)系。Python數(shù)據(jù)庫映射可以讓開發(fā)人員更加方便地操作數(shù)據(jù)庫,尤其是對于那些數(shù)據(jù)庫設(shè)計較為復(fù)雜的應(yīng)用程序。
在Python中,最流行的數(shù)據(jù)庫映射工具是ORM(Object-Relational Mapping,對象關(guān)系映射)。ORM是一種將對象與關(guān)系型數(shù)據(jù)庫之間數(shù)據(jù)表示的技術(shù),它使用Python對象代表數(shù)據(jù)庫中的表,將數(shù)據(jù)庫中的行映射為對象中的屬性。
# 使用SQLAlchemy庫實現(xiàn)ORM from sqlalchemy import create_engine, Column, Integer, String from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base # 定義數(shù)據(jù)庫引擎 engine = create_engine('sqlite:///test.db', echo=True) # 創(chuàng)建會話 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) # 創(chuàng)建表 Base.metadata.create_all(engine) # 插入數(shù)據(jù) user1 = User(name='Tom', age=20) session.add(user1) session.commit() # 查詢數(shù)據(jù) user_list = session.query(User).all() for user in user_list: print(user.name, user.age)
在上面的例子中,我們使用SQLAlchemy庫實現(xiàn)了ORM。創(chuàng)建了一個名為“users”的表,其中包含“id”、“name”和“age”三個列。我們創(chuàng)建了一個名為“User”的模型,它代表了這個表。使用“session”對象可以插入和查詢User對象,從而實現(xiàn)了對數(shù)據(jù)庫的操作。