標籤:com add bin group for color pass style lan
# -*- coding: utf-8 -*-import sqlalchemyfrom sqlalchemy import create_enginefrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column, Integer, Stringfrom sqlalchemy.orm import sessionmakerengine = create_engine(‘mysql+mysqlconnector://plan:[email protected]/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發現還是NoneSession.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_idSession.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 funcprint(Session.query(func.count(User.name), User.name).group_by(User.name).all())# 分組Session.close()#最後不忘close‘‘‘orady_bydesc 升序asc 降序‘‘‘
注釋很詳細了,不寫了
sqlalchemy(二)簡單的串連樣本