Linux自动化运维——Python(11)(Python的数据库编程之对象关系映射SQLAalchemy)

1.什么是ORM

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

2.SQLAlchemy

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

3.基本操作

(1)安装sqlalchemy

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

(3)创建映射(创建表):一个映射对应着一个Python类,用来表示一个表的结构。

(4)添加单条数据

添加多条数据

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

(6)删除数据

代码实现:

from sqlalchemy import create_engine 
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column,Integer, String
# 1. 创建引擎
engine = create_engine(
                "mysql+pymysql://root:westos@localhost:3306/westos?charset=utf8",  
                max_overflow=5, 
                echo=True) 

# 2.创建session会话(用作面向对象程序和数据库之间的缓存)
Session = sessionmaker(bind=engine)
session = Session()


# 3. 重点: 通过面向对象的方式对数据库进行操作(增删改查)
Base = declarative_base()
class People(Base):
    __tablename__ = 'people'
    id = Column(Integer, primary_key=True)
    name = Column(String(30))
    email = Column(String(30), unique=True)

    def __repr__(self):
        """字符串的友好展示"""
        return "<People: %s %s %s>" %(self.id, self.name, self.email)
# 创建数据库表
Base.metadata.create_all(engine)

"""
# 批量添加数据
for i in range(10):
    p = People(name="name%s" %(i+1), email="mail%[email protected]" %(i+1))
    session.add(p)
session.commit()
print("写入10条数据成功")
"""
# 查询数据信息
data = session.query(People).filter_by(name="name1").first()
print("找到name1的信息了, ", data)


# 删除找到的信息
session.delete(data)
session.commit()
print("删除成功")

猜你喜欢

转载自blog.csdn.net/weixin_43215948/article/details/107464806