sqlalchemy(二)簡單的連接示例
阿新 • • 發佈:2018-03-17
修改 條件查詢 mode mit creat utf-8 orm 除開 生成
# -*- 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(二)簡單的連接示例