Python常用的ORM/orm框架
Posted 程序员唐丁
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python常用的ORM/orm框架相关的知识,希望对你有一定的参考价值。
使用Python做web开发过程中我们肯定会使用到数据库,有人可能使用原生sql进行操作,但大多数都会选择使用ORM方式操作数据库,如果你不知道什么是ORM的话请自行百度。今天唐丁给大家介绍几个常用的ORM库,并列出其中常用的操作数据库的函数。
sqlalchemy
这个框架适合企业级项目的开发
安装
pip install sqlalchemy
数据表样例
class User(Base):
__tablename__ = 'users' # 表名
__table_args__ = 'sqlite_autoincrement': True
# 表结构
id = Column(Integer, primary_key=True, autoincrement=True)
name = Column(String(32), nullable=False) # 有些数据库允许不指定String的长度
age = Column(Integer, default=0)
password = Column(String(64), unique=True)
常用操作
# 增加单条数据
user = User(name='Jery',password='123')
# 增加多条数据
session.add_all([
User(name='Jery',password='123'),
User(name='Mike',password='123')
User(name='Don',password='123')
])
# 查找所有-无条件
session.query(User).all()
# 单条件查询
session.query(User).filter(User.id == 4).all() #返回结果列表
session.query(User).filter(User.id == 4).first() #返回单个实例
# 多条件查询
session.query(User).filter(User.id == 4, User.name == "donding").all()
# 模糊查询
session.query(User).filter(User.name.like('%e%')).all()
# 排序-升序
session.query(User).order_by(User.name).all()
# 排序-降序
session.query(User).order_by(User.name.desc()).all()
# 限制数量
session.query(User).limit(2)
# 统计数量
session.query(User).order_by(User.name.desc()).count()
# 改
user = session.query(User).filter(User.id == 4).first()
user.name = "dingcong"# 删
user = session.query(User).filter(User.id == 4).first()
session.delete(user)
peewee
不追求性能,推荐个人项目使用
安装
pip install peewee
数据表样例
class BaseModel(Model):
class Meta:
database = db
class User(BaseModel):
username = CharField(unique=True)
常用操作
# 增
Patent(title='****',patent_type='实用新型',patent_number='CN202021645688.6',apply_date='2020-08-10',
public_number='CN212411071U',public_date='2021-01-26',apply_person='***',address='***',
inventor='唐丁',classification_code='***',main_classification_code='G05D1/02',region_code=32,page_num=9,
agency='***专利代理有限公司',agent='**',dbcode='***',dbname='***',filename='***',
status=1,create_time=datetime.now(),update_time=datetime.now()).save()
p = Person(name='liuchungui', birthday=date(1990, 12, 20), is_relative=True)
p.save()
# 删除姓名为perter的数据
Person.delete().where(Person.name == 'perter').execute()
# 更新birthday数据
q = Person.update(Person.birthday: date(1983, 12, 21)).where(Person.name == 'liuchungui')
q.execute()
# 查询单条数据
p = Person.get(Person.name == 'liuchungui'
# 使用where().get()查询
p = Person.select().where(Person.name == 'liuchungui').get()
# 查询多条数据
persons = Person.select().where(Person.is_relative == True)
以上是关于Python常用的ORM/orm框架的主要内容,如果未能解决你的问题,请参考以下文章