一、基本配置

  • 连接数据库

  外部连接数据库时,用于表名数据库身份的一般是一个URL。在sqlalchemy中将该URL包装到一个引擎中,利用这个引擎可以扩展出很多ORM中的对象。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

engine = create_engine('mysql+mysqldb://gaogao:123456@localhost:3360/demodb')

Session = sessionmaker(bind=engine)

 sqlalchemy基础教程 随笔

 

  • 表的表示

SQLALchemy一次只让操作一个库,所以操作基本上操作对象就是表。sqlalchemy就是将表抽象成一个类.

from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import String,Column,Integer

engine =create_engine('mysql+mysqldb://gaogao:123456@localhost:3360/demodb')
Session = sessionmaker(bind=engine)

Base = declarative_base()

class Student(Base):
    __tablename__ = 'Students'
            Sno = Column(String(10),primary_key=True)
            Sname = Column(String(20),nullable=False,unique=True,index=True)#nullable就是决定是否not null,unique就是决定是否unique(唯一),设置index可以让系统自动根据这个字段为基础建立索引

    
            def __repr__(self):
                        return "<Student>{}:{}".format(self.Sname,self.Sno)

 其中 __repr__方法不是必须的,只是写在这里来使得调试时更加容易分清楚是谁

有了这个类就相当于建立出了一张表,可以编写多个类来建立起多张表,要注意它们都要继承Base类哦!

  • 启动实质性的连接
Base.metadata.create_all(engine)

session = Session() #实例化了一个事务

session.commit() #提交会话(事务),如果不提交的话就没有执行操作哦

session.roolback() #回滚会话

session.close() #关闭会话
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄