数据库对象映射SQLAalchemy(Python语言实现)

文章目录

    • 简介
    • 基本操作

简介

什么是ORM?
ORM,即Object-Relation Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间做一个映射,这样,我们在具体的操作业务对象的时候,就**不需要再去和复杂的SQL语句打交道,**只需要简单的操作对象的属性和方法。

什么是SQLAIchemy?
SQLAIchemy是Python编程语言下的一款开源软件。提供了SQL工具包以及对象关系映射工具,为高校和高性能的数据库访问设计,实现了完整的企业级别持久模型。

数据库对象映射SQLAalchemy(Python语言实现)_第1张图片

基本操作

安装sqlalchemy步骤:
1.需要一台安装MYSQL数据库的机器
2.安装模块:pip3 install sqlalchemy
3.查看版本信息

操作信息:
在sqlalchemy中,session用于创建程序与数据库之间的会话。所有对象的载入和保存都需要通过session对象。

数据库对象映射SQLAalchemy(Python语言实现)_第2张图片
一个映射对应着一个Python类,用来表示一个表的结构。

#基于这个基类来创建我们的自定义类,一个类就是一个数据库表。
class Person(Base):
	__tablename__ = 'userinfo'
	id = 	Column(Integer,primary_key=True)
	name = Column(String(32))
	email = Column(String(32),unique = True)
	
	def __repr__(self):
		return "" % self.name
if __name__ == '__main__':
	#检查表的存在性,如果不存在的话会执行表的创建工作。
	Base.metadata.create_all(engine)

添加单条数据

	#创建一个person对象
	person = Person(name=‘粉丝’)
	#设置邮箱地址
	person.email = 'westos.qq.com'
	#添加person对象,但是仍然没有提交到数据库
	session.add(person)
	#提交数据库
	session.commit()

添加多条数据

	seeion.add_all([Person(name='小A',email='[email protected]')
							 Person(name='小B',email='[email protected]')]	
	session.commit()

查找数据
sqlalchemy模块中,朝朝数据给提供了query()的方法

#限制返回的数据:all-所有数据,first-第一条数据
print(session.query(Person).all())
print(session.query(Person).first())

#筛选数据
print(session.query(Person).filter_by(name='小A').all())
print(session.query(Person).filter_by(name='小A'.first())
print(session.query(Person).filter_by(name='小A').one_or_none())

删除数据

person = session.query(Person).filter_by(name="小A").first()
session.delete(person)
print(session.query(Person).all())

你可能感兴趣的:(技术类)