1. 程式人生 > >sqlalchemy(二)簡單的連接示例

sqlalchemy(二)簡單的連接示例

修改 條件查詢 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(二)簡單的連接示例