sqlalchemy常用api(常用的增删改查)

sqlalchemy是python的一个orm包,百度百科介绍

sqlalchemy百度百科介绍

首先安装sqlalchemy

#python3安装sqlalchemy
pip3 install sqlalchemy

连接数据库

#连接数据库  echo是否输出sql相关信息
#连接sqllite3
engine=create_engine('sqlite:///video.db',encoding='utf-8',echo=False)
#连接mysql
engine = create_engine("mysql+pymysql://root:123456@localhost/ceshi", encoding='utf-8', echo=True)
session_class = sessionmaker(bind=engine)
session = session_class()

创建数据表映射

#生成orm基类
base=declarative_base()
class video(base):
    __tablename__ = 'videos' #表名
    id = Column(Integer, primary_key=True)
    title = Column(String(256))
    poster = Column(String(256))
    video_duration = Column(String(64))
    video_url = Column(String(256))

    category = Column(String(256))

#将查询的数据结果转换为json格式
    def to_json(self):
        if hasattr(self, '__table__'):
            return {i.name: getattr(self, i.name) for i in self.__table__.columns}
        raise AssertionError('<%r> does not have attribute for __table__' % self)
base.metadata.create_all(engine) #创建表结构

基本的增删改查:

#最基础的插入数据
video_obj = video(title='ceshi')
session.add(video_obj)
session.commit()
#最基础的查询数据
my_obj = session.query(video).first()
my_obj_list = session.query(video).all()
#删除数据
session.query(video).filter_by(id=1).delete()
session.commit()
#修改数据
session.query(video).filter_by(id=1).update({'title': '123'})
session.commit()

带有条件的复杂查询

#指定查询字段 使用filter_by或filter
my_obj = session.query(video).filter_by(id=1).first()
#查询某列
item_list = session.query(video.title).all()
#对结果进行排序
item_list = session.query(video).order_by(video.id.desc()).all() # desc()表示倒序

未完待续,明天继续更新,欢迎大家关注博客,共同学习!

sqlalchemy常用api(常用的增删改查)》有1条评论

评论已关闭。