Python ORM(Object-Relational Mapping)推荐
导言
在软件开发中,数据库是必不可少的组成部分。而在处理数据库操作时,开发者通常需要编写大量的SQL语句,这不仅繁琐,而且容易出错。为了解决这个问题,ORM(Object-Relational Mapping)技术应运而生。
ORM是一种将对象和关系数据库之间进行映射的技术,它可以通过面向对象的方式操作数据库,使开发者能够更加方便地执行增删改查等操作。在Python中,有许多优秀的ORM库可供选择,下面将介绍一些常用的Python ORM库,并给出相应的代码示例。
SQLAlchemy
SQLAlchemy是Python中最流行的ORM库之一,它支持多种数据库后端,并且提供了许多高级的查询和映射功能。
安装
pip install sqlalchemy
连接数据库
from sqlalchemy import create_engine
# 创建数据库引擎
engine = create_engine('sqlite:///test.db', echo=True)
# 创建Session
session = sessionmaker(bind=engine)()
定义模型
from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class User(Base):
__tablename__ = 'user'
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()
查询数据
users = session.query(User).all()
for user in users:
print(user.name, user.age)
更新数据
user = session.query(User).filter(User.name == 'Alice').first()
user.age = 21
session.commit()
删除数据
user = session.query(User).filter(User.name == 'Alice').first()
session.delete(user)
session.commit()
Peewee
Peewee是另一个流行的Python ORM库,它的设计目标是简洁、轻量级,并且易于使用。
安装
pip install peewee
连接数据库
from peewee import SqliteDatabase
db = SqliteDatabase('test.db')
定义模型
from peewee import Model, CharField, IntegerField
class User(Model):
name = CharField()
age = IntegerField()
class Meta:
database = db
创建表格
User.create_table()
插入数据
user = User(name='Alice', age=20)
user.save()
查询数据
users = User.select()
for user in users:
print(user.name, user.age)
更新数据
user = User.get(User.name == 'Alice')
user.age = 21
user.save()
删除数据
user = User.get(User.name == 'Alice')
user.delete_instance()
Pony ORM
Pony ORM是一个简洁而强大的Python ORM库,它使用了领域特定语言(DSL)来定义模型和查询。
安装
pip install pony
连接数据库
from pony.orm import Database
db = Database('sqlite', ':memory:')
定义模型
from pony.orm import PrimaryKey, Required
class User(db.Entity):
id = PrimaryKey(int, auto=True)
name = Required(str)
age = Required(int)
创建表格
db.generate_mapping(create_tables=True)
插入数据
with db_session:
user = User(name='Alice', age=20)
查询数据
with db_session:
users = select(u for u in User)
for user in users:
print(user.name, user.age)
更新数据
with db_session:
user = User.get(name='Alice')
user.age = 21
删除数据
with db_session:
user = User.get(name='Alice')
user.delete()
总结
本文介绍了Python中三个常用的ORM库:SQLAlchemy、Peewee和Pony ORM。它们都提供了简洁的API和强大的功能,可以大大简化开发