sqlalchemy--增删查改操作
from sqlalchemy import create_engine,Column,Integer,String from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker DIALCT = "mysql" DRIVER = "pymysql" USERNAME = "root" PASSWORD = "root" HOST = "127.0.0.1" PORT = "3306" DATABASE = "test" DB_URI={}+{}://{}:{}@{}:{}/{}?charset=utf8.format(DIALCT,DRIVER,USERNAME,PASSWORD,HOST,PORT,DATABASE) engine = create_engine(DB_URI) Base = declarative_base(engine) # 创建session 会话对象 session = sessionmaker(engine)() class Person(Base): __tablename__ = "person" id = Column(Integer , primary_key=True , autoincrement=True) name = Column(String(10) , nullable=False) age = Column(Integer, nullable=False) #定义__repr__方法:将对象的属性方法打印成一个可读字符串 def __repr__(self): return "id:%s,name:%s,age:%s"%(self.id,self.name,self.age) # Base.metadata.drop_all() # Base.metadata.create_all() # 添加数据 def add_data(): # 向表中添加一条数据 person = Person(name = "jack" , age = 20) session.add(person) # 添加数据后、数据保存到电脑内存上,并没有添加到数据库中,需使用 session.commit() 方法将数据提交到数据库中。 session.commit() #结果如下: # 向表中添加多条数据(如需添加多条数据、只需使用add_all方法将多条数据添加到一个列表即可) person1 = Person(name = "blue" , age = 30) person2 = Person(name = "tom" , age = 23) session.add_all([person1,person2]) session.commit() #查询数据 def select_data(): # 查询表中所有数据 results = session.query(Person).all() for r in results: print(r) # 查询表中第一条数据 first = session.query(Person).first() print(first) # 查询表中name为tom的第一条数据 result = session.query(Person).filter_by(name = "tom").first() print(result) #结果如下: # 查询表中年龄大于20的数据(结果为list,故用for循环遍历) results = session.query(Person).filter(Person.age > 20).all() for r in results: print(r) 结果如下: # filter: 多用于简单查询,filter_by:用于复杂查询,使用filter_by作为查询过滤条件时,需在前面添加对象名,如Person.age #修改数据 def update_date(): # 查询表中第一条数据,将其姓名修改为 tlj result = session.query(Person).first() result.name = "tlj" session.commit() print(result) # 结果如下: #删除数据 def del_data(): result = session.query(Person).first() session.delete(result) session.commit() #结果如下: #如果程序作为主文件运行,将执行下面函数 if __name__ == "__main__": #执行增删查改操作、填写相对应函数即可(以添加数据为例) add_data() --------------------- 版权声明:本文为CSDN博主「汤锅」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/aimill/article/details/80711685