频道栏目
首页 > 资讯 > SQL Server > 正文

使用sqlalchemy对数据库表进行增删查改的操作讲解

18-06-16        来源:[db:作者]  
收藏   我要投稿

上一节为大家讲解了“定义ORM模型,并将ORM模型映射到数据库中”,将ORM模型映射到数据库后,我们就可以对数据库表进行增删查改操作了。

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()

相关TAG标签
上一篇:android 百度地图系列之结合方向传感器的地图定位
下一篇:solr 6.5.1 创建core失败的原因 Can't find resource 'solrconfig.xml'的解决方法讲解
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站