from sqlalchemy import Column, String, create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.dialects.mysql import TEXT, INTEGER, VARCHAR, DATETIME, TINYINT
# 建立對象的基類
Base = declarative_base()
# 定義User對象
class User(Base):
# 表的名字
__tablename__ = 'user'
# 表的結構
id = Column(INTEGER, primary_key=True, autoincrement=True, comment='id關聯表自增id')
name = Column(String(20))
# 初始化資料庫連結
engine = create_engine('mysql+pymysql://root:[email protected]:3306/tapp')
# 建立DBSession類型
DBSession = sessionmaker(bind=engine)
# # 添加
# # 建立Session對象
# session = DBSession()
# # 建立User對象
# new_user = User(name='Bob')
# # 添加到session
# session.add(new_user)
# # 送出
# session.commit()
# # 關閉session
# session.close()
# 查詢
# 建立session
session = DBSession()
# 利用session建立查詢,query(對象類).filter(條件).one()/all()
# filters = {'name': 'Bob', 'id': 6}
# user_list = session.query(User).filter_by(**filters).filter(User.id > 1).all()
# filters = {'name': , 'id': 6}
user_list = session.query(User).filter(User.name.like('Bob'), User.id.like(2)).all()
for user in user_list:
print('type:{0}'.format(user.id))
print('name:{0}'.format(user.name))
# 關閉session
session.close()
# # 更新
# session = DBSession()
# user_result = session.query(User).filter_by(id='5').first()
# user_result.name = "jack"
# session.commit()
# session.close()
# 删除
# session = DBSession()
# user_del = session.query(User).filter_by(id='5').first()
# session.delete(user_del)
# session.commit()
# session.close()