sqlAlchemy 简单使用 翻译

ORM

Object Relational Mapper 代表了一种设计原则,讲数据库映射为一个 session 工作单元,将表也定义为响应的类,并把对应的表和session 相关联
这种方法可以减少 数据 DAL data assess layer 层的重复书写,并且使用类构建对应的sql查询简化工作量

链接

from sqlalchemy import create_engine
# 建立一个直接链接
engine = create_engine('addr', echo=True)

一般我们不会这么直接使用

addr

标明数据库

mapping

from sqlalchemy.ext.declarative import declarative_base
# 提供的基础映射
Base = declarative_base()

from sqlalchemy import Column, Integer, String
class User(Base):
    __tablename__ = 'users' # 标明是那个表

	# 表对象
     id = Column(Integer, primary_key=True)
     name = Column(String)
     fullname = Column(String)
     nickname = Column(String)

     def __repr__(self):
       return "<User(name='%s', fullname='%s', nickname='%s')>" % (
                            self.name, self.fullname, self.nickname)

创建一个 schema

上面 USER 创建了一个我们的 table 类,我们称为表元数据 metadata
我们可以通过 User.__table__ 查看这一信息,

Table对象是一个更大的集合的成员,称为MetaData。使用Declarative时,可以使用.metadata 声明性基类的属性来使用此对象。

由于实际上不存在这一个表,我们可以使用CREATE 创建这个表,如下

Base.metadata.create_all(engine)

创建一个 table 表的实例

就是一行? 但是没有插入道数据库里面,这里没有设置的值会设置默认值,当然插入的

创建session

from sqlalchemy.orm import sessionmaker
Session = sessionmaker(bind=engine)
Session.configure(bind=engine) 设置
session = Session() 实例

这里我们Session只是关联了一个session,并没有打开任何链接,当我们第一次使用的时候会自动从engine维护的连接池种检索链接,并保留他,知道我们提交所有更改或者关闭回话

https://docs.sqlalchemy.org/en/13/orm/session_basics.html#session-faq-whentocreate

添加& 更新对象

。。 TBD

ref https://docs.sqlalchemy.org/en/13/orm/tutorial.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值