sqlalchemy(二)简单的连接示例
时间:2021-07-01 10:21:17
帮助过:3人阅读
-*- coding: utf-8 -*-
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(
‘mysql+mysqlconnector://plan:plan@mysql/plan‘)
Base = declarative_base()
# 生成orm基类
class User(Base): #进行映射,创建表结构,models ,三项,id name password
__tablename__ =
‘user‘ # 表名
id = Column(Integer, primary_key=
True)
name = Column(String(32
))
password = Column(String(64
))
Base.metadata.create_all(engine) # 创建表结构
Session_class = sessionmaker(bind=engine)
# 创建与数据库的会话session class ,注意,这里返回给session的是个class,不是实例
Session = Session_class()
# 生成session实例
# Session.close()#关闭连接 这个放最后
# 插入开始
print(
‘插入开始‘)
user_obj = User(name=
"jack", password=
"jack")
# 生成你要创建的数据对象
print(user_obj.name, user_obj.id)
# 此时还没创建对象呢,不信你打印一下id发现还是None
Session.add(user_obj) # 把要创建的数据对象添加到这个session里, 一会统一创建
print(user_obj.name, user_obj.id)
# 此时也依然还没创建
Session.commit() # 现此才统一提交,创建数据
print(
‘提交数据‘)
print(user_obj.name, user_obj.id)
# 提交过,就会放在数据库里了。
# 插入结束
print(
‘插入结束‘)
# 查询开始
print(
‘查询开始‘)
my_user = Session.query(User).filter_by(name=
"jack").first()
# 查找name=jack的
print(my_user)
# 这查出来是个对象
print(my_user.id, my_user.name, my_user.password)
# 查询结束
print(
‘查询结束‘)
# 删除开始
print(
‘删除开始‘)
# 先插入一个,可以删的。
user_obj = User(name=
"rose", password=
"jack")
Session.add(user_obj)
Session.commit()
# 查找到需要删的对象
del_user = Session.query(User).filter_by(name=
"rose").first()
print(del_user.name)
Session.delete(del_user) # 删除命令
Session.commit()
# 提交删除
find_user = Session.query(User).all()
#查询表的全部内容
for i
in find_user:
print(i.id, i.name)
# 删除结束
# 修改开始
print(
‘修改开始‘)
my_user = Session.query(User).filter_by(name=
"jack").first()
# 找到第一条名字是jack的,生成对象。
my_user.name =
"jackadam" # 给对象变量命名
temp_id = my_user.id
# 把这个对象的ID,赋值给临时变量temp_id
Session.commit()
# 提交修改
my_user2 = Session.query(User).filter_by(id=temp_id).first()
# 根据临时变量id,重新查询一下名字是否修改。
print(my_user2.name)
# 修改结束
print(
‘修改结束‘)
# 多条件查询
objs = Session.query(User).filter(User.id > 0).filter(User.id < 7
).all()
# 多条件查询
# 统计
print(
‘统计‘)
count_num = Session.query(User).filter(User.name.like(
"ja%")).count()
print(count_num)
# 统计
# 分组
print(
‘分组‘)
from sqlalchemy
import func
print(Session.query(func.count(User.name), User.name).group_by(User.name).all())
# 分组
Session.close()
#最后不忘close
‘‘‘
orady_by
desc 升序
asc 降序
‘‘‘
注释很详细了,不写了
sqlalchemy(二)简单的连接示例
标签:com add bin group for color pass style lan