设为首页 加入收藏

TOP

使用sqlalchemy对数据库表进行增删查改的操作讲解
2018-06-18 14:24:23 】 浏览:169
Tags:使用 sqlalchemy 数据库 进行 增删 查改的 操作 讲解

上一节为大家讲解了“定义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()

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇PLSQLdeveloper的安装及其配置教程 下一篇MySQL主从复制举例讲解

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目