Python3 ORM 全称是Python Object Relational Mapping,是一个Python开发机制,可以将数据模型转换为对象模型,从而简化数据库操作。ORM可以将关系型数据库中的数据与Python对象之间建立映射关系,这样就可以通过Python对象的方式来操作数据库,使得Python的操作更加直观、简单。
Python3 ORM 的一个优势是它支持在Python代码中使用原生SQL语句,这意味着我们不必学习新的语法就可以轻松处理基本数据类型,例如INSERT、SELECT、UPDATE、DELETE等操作,同时也支持高级ORM操作,例如映射、查询、增删改查等。
# Python3 ORM例子 from sqlalchemy import create_engine, Column, Integer, String, ForeignKey from sqlalchemy.orm import sessionmaker, relationship from sqlalchemy.ext.declarative import declarative_base engine = create_engine('sqlite:///database.db') Base = declarative_base() class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String, nullable=False) email = Column(String, unique=True) posts = relationship("Post", back_populates="author") class Post(Base): __tablename__ = 'posts' id = Column(Integer, primary_key=True) title = Column(String, nullable=False) body = Column(String, nullable=False) author_id = Column(Integer, ForeignKey('users.id')) author = relationship("User", back_populates="posts") Session = sessionmaker(bind=engine) session = Session() # 创建表 Base.metadata.create_all(engine) # 插入用户 user = User(name='test', email='test@test.com') session.add(user) session.commit() # 查询用户 user = session.query(User).filter(User.email == 'test@test.com').first() print(user.name) # 插入文章 post = Post(title='test-title', body='test-body', author_id=user.id) session.add(post) session.commit() # 查询文章 post = session.query(Post).filter(Post.author_id == user.id).first() print(post.title)
在上面的例子中,我们使用了Python3 ORM框架SQLAlchemy,创建了一个SQLite数据库,建立了用户和文章两个表格,其中通过ForeignKey建立了表格之间的关系。
然后,我们通过SQLAlchemy设置了用户和文章两个表格的Python对象模型,并使用session连接数据库,进行数据的CRUD操作。
Python3的ORM使我们的代码更易于维护和理解,自然写出更优雅的Python代码!
上一篇 python3 nsq
下一篇 html标签围绕中心旋转代码