中文文档 http://docs.jinkan.org/docs/flask-sqlalchemy/index.html 要点写在了注释里.注意_repr_这个函数
import sqlalchemy from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column,Integer,String from sqlalchemy.orm import sessionmaker engine = create_engine('sqlite:///foo.db',echo = True) Base = declarative_base() class User(Base): __tablename__ = 'users' id = Column(Integer,primary_key=True) name = Column(Integer) fullname = Column(String) password = Column(String) #Base中已经有构造函数,所有这里可以用__repr__ def __repr__(self): return "<User(name='%s' ,fullname='%s' ,password ='%s')>" %( self.name,self.fullname,self.password) #实例化一个ed_user ed_user = User(name = 'ed',fullname ='Numb',password = 'password') print(ed_user) #下面一条语句用于创建数据库文件,会在当前目录生成foo.db文件 # Base.metadata.create_all(engine) #数据库事务操作 Session = sessionmaker(bind = engine) session = Session() session.add(ed_user) #添加多条数据,用session.add_all() session.add_all([User(name = 'b',fullname ='Numb1',password = 'password'), User(name='c', fullname='Numb2', password='password'), User(name='d', fullname='Numb3', password='password')]) #查询name是ed的用户 our_user = session.query(User).filter_by(name='ed').first() #查询所有的用户 all_user = session.query(User).all() #添加过滤条件的查询,查询fullname里以b结尾的 withu_user = session.query(User).filter(User.fullname.like('%b')).first() # print(our_user) #print(all_user) #上述代码只会在缓存中添加,并不会在数据表中实际添加,使用commit进行提交,从而使数据表中数据更新 session.commit()