SQLAlchemy 是一种对象关系映射模型(Object Relational Mapper), 简称ORM。
它展现了一种将用户定义的python中的类映射到数据库中表的方法。类的实例,就相当于表中的一行数据。简单来说呢, 就是让我们从SQL语句中抽离出来,只需要按照python的语法来写, 它会自动转换为相对应的SQL语句。
下面总结一下SQLAlchemy简单实使用。
连接数据库: from sqlalchemy import create_engine engine = create_engine('mysql+pymysql://root:111122@localhost/test', echo=True) #开启 debug 模式 创建Mapping: from sqlalchemy import create_engine, Column, String, Integer from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) # 每一个类都需要主键 username = Column(String(64), index=True) email = Column(String(64), unique=True, index=True) location = Column(String(128)) 创建Schema: Base.metadata.create_all(bind=engine) 创建session: from sqlalchemy.orm import sessionmaker session = sessionmaker(bind=engine)() #就像 Metadata 类一样,需要 bind engine 生成一些假数据: from faker import Faker #使用 faker 这个模块来生成一些假数据, pip install faker faker = Faker() def fake_data_generate(User, session): for _ in range(10): user = User(username=faker.name(), email=faker.email(), location=faker.address()) session.add(user) session.commit() fake_data_generate(User, session) CRUD 操作(创建、读取、更新、删除): Create anyisalin = User(username='aaaaaaaaaa', email='aaa@gmail.com', location='Shanghai/China') session.add(anyisalin) session.commit() Update anyisalin.username >>> aaaaaaaa anyisalin.username='SuPerC2333' session.add(anyisalin) session.commit() Delete session.delete(anyisalin) session.commit() 查询全部: session.query(User).all() 查询第一个: session.query(User).first() filter: session.query(User).filter(User.id == 7).all() count: session.query(User).count()
文章评论