SQLAlchemy用法指南

来源:互联网 发布:navicat for linux 64 编辑:程序博客网 时间:2024/06/09 15:24

SQLAlchemy用法指南

什么是SQLAlchemy

SQLAlchemy : python ORM框架
ORM : Object-Relational Mapping,将关系型数据库的表结构映射到对象上
也就是简化了所有关系型数据库的操作,只需使用SQLAlchemy语法进行操作

如何使用SQLAlchemy操作数据库

数据库操作都存在4个基本的功能,增、读、改、删(CRUD)
- 增 : db.session.add()
- 读 : 使用Model.query(),Model.query是db.session.query(Model)的简写

         Model.query.all()数据库中所有行         Model.query.limit(10).all()返回十行         Model.query.order_by(User.username).all()正向排序         Model.query.order_by(User.username.desc()).all()逆向排序         Model.query.first()只返回一行         Model.query.get(1)通过主键取得

以上函数皆可以连接起来调用,first()和all()返回结果,终止链式调用

         Model.query.paginate(1,10)分页         page.items页数         page.has_prev上一页         page.has_prev下一页

筛选数据:filter_by过滤器

     users = User.query.order_by(User.username).filter_by(username='fake')     users = User.query.filter(User.id>1)
  • 改 : .update()
  • 删 : .delete()

对象之间建立联系

class User(Base):    __tablename__ = 'user'    id = Column(String(20), primary_key=True)    name = Column(String(20))    # 一对多:    books = relationship('Book')class Book(Base):    __tablename__ = 'book'    id = Column(String(20), primary_key=True)    name = Column(String(20))    # “多”的一方的book表是通过外键关联到user表的:    user_id = Column(String(20), ForeignKey('user.id'))

对象User就是数据库中的一个表,可以使用__tablename__指定表明,如果不指定,默认为对象名,promary_key设置为主键,ForeignKey是一个外键约束,relationship表示一个关系

原创粉丝点击