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%s@qq.com" %(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("删除成功")

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值