import sqlalchemy # 調用連接數據庫 from sqlalchemy import create_engine # 調用基類Base from sqlalchemy.ext.declarative import declarative_base # 調用Column建立字段 加類型 from sqlalchemy import Column, Integer, String # create_engine 連接數據庫 mysql+pymysql:連接對象//用戶名:密碼@主機/DB # encoding='utf-8' 連接字符集 ,echo=True 把全部信息打印出來 engine = create_engine("mysql+pymysql://root:123456@192.168.1.154/xiang", encoding='utf-8', echo=True) # 生成orm基類 Base = declarative_base() # 繼承Base class User(Base): # __tablename__ 表名 __tablename__ = 'user' # Column字段(數據類型 Integer整數,primary_key=True主鍵) id = Column(Integer, primary_key=True) # Column字段(String(32)字符長度) name = Column(String(32)) # Column字段(String(64)字符長度) password = Column(String(64)) # 建立表結構 # 調用Baew基類方法metadata.create_all(連接數據庫) Base.metadata.create_all(engine)
from sqlalchemy import Table, MetaData, Column, Integer, String, ForeignKey from sqlalchemy.orm import mapper metadata = MetaData() # 建立表結構,調用metadata user = Table('user', metadata, Column('id', Integer, primary_key=True), Column('name', String(50)), Column('fullname', String(50)), Column('password', String(12)) ) # 建立類 class User(object): def __init__(self, name, fullname, password): self.name = name self.fullname = fullname self.password = password # 將表元數據與表構造分開建立,然 後經過mapper()函數與用戶類關聯。 mapper(User, user)
import sqlalchemy # 調用連接數據庫 from sqlalchemy import create_engine # 調用基類Base from sqlalchemy.ext.declarative import declarative_base # 調用Column建立字段 加類型 from sqlalchemy import Column, Integer, String # 調用操做連接 from sqlalchemy.orm import sessionmaker # create_engine 連接數據庫 mysql+pymysql:連接對象//用戶名:密碼@主機/DB # encoding='utf-8' 連接字符集 ,echo=True 把全部信息打印出來 engine = create_engine("mysql+pymysql://root:123456@192.168.1.154/xiang",encoding='utf-8', #echo=True ) # 生成orm基類 Base = declarative_base() # 繼承Base class User(Base): # __tablename__ 表名 __tablename__ = 'user' # Column字段(數據類型 Integer整數,primary_key=True主鍵) id = Column(Integer, primary_key=True) # Column字段(String(32)字符長度) name = Column(String(32)) # Column字段(String(64)字符長度) password = Column(String(64)) # 返回一個能夠用來表示對象的可打印字符串 def __repr__(self): return "<%s name:%s>"%(self.id,self.name) # 建立與數據庫的會話session class ,注意,這裏返回給session的是個class,不是實例 # bind=engine 綁定engine socket實例 Session_class = sessionmaker(bind=engine) #生成session實例,如同pymysql內的cursor Session = Session_class() #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# # 生成你要建立的數據對象,只是建立對象 user_obj = User(name="kevin",password="123456") #把要建立的數據對象添加到這個session裏, 一會統一建立 Session.add(user_obj) #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #現此才統一提交,建立數據 Session.commit()
import sqlalchemy # 調用連接數據庫 from sqlalchemy import create_engine # 調用基類Base from sqlalchemy.ext.declarative import declarative_base # 調用Column建立字段 加類型 from sqlalchemy import Column, Integer, String # 調用操做連接 from sqlalchemy.orm import sessionmaker # create_engine 連接數據庫 mysql+pymysql:連接對象//用戶名:密碼@主機/DB # encoding='utf-8' 連接字符集 ,echo=True 把全部信息打印出來 engine = create_engine("mysql+pymysql://root:123456@192.168.1.154/xiang",encoding='utf-8', #echo=True ) # 生成orm基類 Base = declarative_base() # 繼承Base class User(Base): # __tablename__ 表名 __tablename__ = 'user' # Column字段(數據類型 Integer整數,primary_key=True主鍵) id = Column(Integer, primary_key=True) # Column字段(String(32)字符長度) name = Column(String(32)) # Column字段(String(64)字符長度) password = Column(String(64)) # 返回一個能夠用來表示對象的可打印字符串 def __repr__(self): return "<%s name:%s>"%(self.id,self.name) # 建立與數據庫的會話session class ,注意,這裏返回給session的是個class,不是實例 # bind=engine 綁定engine socket實例 Session_class = sessionmaker(bind=engine) #生成session實例,如同pymysql內的cursor Session = Session_class() #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# # 取出刪除的字段對象 x = Session.query(User).filter(User.id=='1').first() # 使用delete刪除 Session.delete(x) # 提交事件執行 Session.commit() #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #現此才統一提交,建立數據 Session.commit()
import sqlalchemy # 調用連接數據庫 from sqlalchemy import create_engine # 調用基類Base from sqlalchemy.ext.declarative import declarative_base # 調用Column建立字段 加類型 from sqlalchemy import Column, Integer, String # 調用操做連接 from sqlalchemy.orm import sessionmaker # create_engine 連接數據庫 mysql+pymysql:連接對象//用戶名:密碼@主機/DB # encoding='utf-8' 連接字符集 ,echo=True 把全部信息打印出來 engine = create_engine("mysql+pymysql://root:123456@192.168.1.154/xiang",encoding='utf-8', #echo=True ) # 生成orm基類 Base = declarative_base() # 繼承Base class User(Base): # __tablename__ 表名 __tablename__ = 'user' # Column字段(數據類型 Integer整數,primary_key=True主鍵) id = Column(Integer, primary_key=True) # Column字段(String(32)字符長度) name = Column(String(32)) # Column字段(String(64)字符長度) password = Column(String(64)) # 返回一個能夠用來表示對象的可打印字符串 def __repr__(self): return "<%s name:%s>"%(self.id,self.name) # 建立與數據庫的會話session class ,注意,這裏返回給session的是個class,不是實例 # bind=engine 綁定engine socket實例 Session_class = sessionmaker(bind=engine) #生成session實例,如同pymysql內的cursor Session = Session_class() #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# # 打印第一個User列表內指定name字符下kevin數據的 第一個對象 data = Session.query(User).filter_by(name="n3").first() # data對象.字段 = ‘修改內容’ data.name = 'vin.xx' #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #現此才統一提交,建立數據 Session.commit()
import sqlalchemy # 調用連接數據庫 from sqlalchemy import create_engine # 調用基類Base from sqlalchemy.ext.declarative import declarative_base # 調用Column建立字段 加類型 from sqlalchemy import Column, Integer, String # 調用操做連接 from sqlalchemy.orm import sessionmaker # create_engine 連接數據庫 mysql+pymysql:連接對象//用戶名:密碼@主機/DB # encoding='utf-8' 連接字符集 ,echo=True 把全部信息打印出來 engine = create_engine("mysql+pymysql://root:123456@192.168.1.154/xiang",encoding='utf-8', #echo=True ) # 生成orm基類 Base = declarative_base() # 繼承Base class User(Base): # __tablename__ 表名 __tablename__ = 'user' # Column字段(數據類型 Integer整數,primary_key=True主鍵) id = Column(Integer, primary_key=True) # Column字段(String(32)字符長度) name = Column(String(32)) # Column字段(String(64)字符長度) password = Column(String(64)) # 返回一個能夠用來表示對象的可打印字符串 def __repr__(self): return "<%s name:%s>"%(self.id,self.name) # 建立與數據庫的會話session class ,注意,這裏返回給session的是個class,不是實例 # bind=engine 綁定engine socket實例 Session_class = sessionmaker(bind=engine) #生成session實例,如同pymysql內的cursor Session = Session_class() #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# # 使用.filter_by 不能使用「<>」指定對象時不須要調用類對象。 data = Session.query(User).filter_by(name="n3").all() # 取出data列表內的第一個內存地址下的name字段。 print(data[0].name) #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #現此才統一提交,建立數據 Session.commit()
import sqlalchemy # 調用連接數據庫 from sqlalchemy import create_engine # 調用基類Base from sqlalchemy.ext.declarative import declarative_base # 調用Column建立字段 加類型 from sqlalchemy import Column, Integer, String # 調用操做連接 from sqlalchemy.orm import sessionmaker # create_engine 連接數據庫 mysql+pymysql:連接對象//用戶名:密碼@主機/DB # encoding='utf-8' 連接字符集 ,echo=True 把全部信息打印出來 engine = create_engine("mysql+pymysql://root:123456@192.168.1.154/xiang",encoding='utf-8', #echo=True ) # 生成orm基類 Base = declarative_base() # 繼承Base class User(Base): # __tablename__ 表名 __tablename__ = 'user' # Column字段(數據類型 Integer整數,primary_key=True主鍵) id = Column(Integer, primary_key=True) # Column字段(String(32)字符長度) name = Column(String(32)) # Column字段(String(64)字符長度) password = Column(String(64)) # 返回一個能夠用來表示對象的可打印字符串 def __repr__(self): return "<%s name:%s>"%(self.id,self.name) # 建立與數據庫的會話session class ,注意,這裏返回給session的是個class,不是實例 # bind=engine 綁定engine socket實例 Session_class = sessionmaker(bind=engine) #生成session實例,如同pymysql內的cursor Session = Session_class() #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# # 使用.filter能夠使用"< == >'符號來指定範圍查找,前面須要加類對象 data = Session.query(User).filter(User.id>2).all() print(data) #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #現此才統一提交,建立數據 Session.commit()
import sqlalchemy # 調用連接數據庫 from sqlalchemy import create_engine # 調用基類Base from sqlalchemy.ext.declarative import declarative_base # 調用Column建立字段 加類型 from sqlalchemy import Column, Integer, String # 調用操做連接 from sqlalchemy.orm import sessionmaker # create_engine 連接數據庫 mysql+pymysql:連接對象//用戶名:密碼@主機/DB # encoding='utf-8' 連接字符集 ,echo=True 把全部信息打印出來 engine = create_engine("mysql+pymysql://root:123456@192.168.1.154/xiang",encoding='utf-8', #echo=True ) # 生成orm基類 Base = declarative_base() # 繼承Base class User(Base): # __tablename__ 表名 __tablename__ = 'user' # Column字段(數據類型 Integer整數,primary_key=True主鍵) id = Column(Integer, primary_key=True) # Column字段(String(32)字符長度) name = Column(String(32)) # Column字段(String(64)字符長度) password = Column(String(64)) # 返回一個能夠用來表示對象的可打印字符串 def __repr__(self): return "<%s name:%s>"%(self.id,self.name) # 建立與數據庫的會話session class ,注意,這裏返回給session的是個class,不是實例 # bind=engine 綁定engine socket實例 Session_class = sessionmaker(bind=engine) #生成session實例,如同pymysql內的cursor Session = Session_class() #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# # 能夠經過filter多條件查詢 data = Session.query(User).filter(User.id >1).filter(User.id <3).all() print(data) #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #現此才統一提交,建立數據 Session.commit()
import sqlalchemy # 調用連接數據庫 from sqlalchemy import create_engine # 調用基類Base from sqlalchemy.ext.declarative import declarative_base # 調用Column建立字段 加類型 from sqlalchemy import Column, Integer, String # 調用操做連接 from sqlalchemy.orm import sessionmaker # create_engine 連接數據庫 mysql+pymysql:連接對象//用戶名:密碼@主機/DB # encoding='utf-8' 連接字符集 ,echo=True 把全部信息打印出來 engine = create_engine("mysql+pymysql://root:123456@192.168.1.154/xiang",encoding='utf-8', #echo=True ) # 生成orm基類 Base = declarative_base() # 繼承Base class User(Base): # __tablename__ 表名 __tablename__ = 'user' # Column字段(數據類型 Integer整數,primary_key=True主鍵) id = Column(Integer, primary_key=True) # Column字段(String(32)字符長度) name = Column(String(32)) # Column字段(String(64)字符長度) password = Column(String(64)) # 返回一個能夠用來表示對象的可打印字符串 def __repr__(self): return "<%s name:%s>"%(self.id,self.name) # 建立與數據庫的會話session class ,注意,這裏返回給session的是個class,不是實例 # bind=engine 綁定engine socket實例 Session_class = sessionmaker(bind=engine) #生成session實例,如同pymysql內的cursor Session = Session_class() #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# # 使用.count()統計獲取數量 print(Session.query(User).count()) #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #現此才統一提交,建立數據 Session.commit()
import sqlalchemy # 調用連接數據庫 from sqlalchemy import create_engine # 調用基類Base from sqlalchemy.ext.declarative import declarative_base # 調用Column建立字段 加類型 from sqlalchemy import Column, Integer, String # 調用操做連接 from sqlalchemy.orm import sessionmaker # create_engine 連接數據庫 mysql+pymysql:連接對象//用戶名:密碼@主機/DB # encoding='utf-8' 連接字符集 ,echo=True 把全部信息打印出來 engine = create_engine("mysql+pymysql://root:123456@192.168.1.154/xiang",encoding='utf-8', #echo=True ) # 生成orm基類 Base = declarative_base() # 繼承Base class User(Base): # __tablename__ 表名 __tablename__ = 'user' # Column字段(數據類型 Integer整數,primary_key=True主鍵) id = Column(Integer, primary_key=True) # Column字段(String(32)字符長度) name = Column(String(32)) # Column字段(String(64)字符長度) password = Column(String(64)) # 返回一個能夠用來表示對象的可打印字符串 def __repr__(self): return "<%s name:%s>"%(self.id,self.name) # 建立與數據庫的會話session class ,注意,這裏返回給session的是個class,不是實例 # bind=engine 綁定engine socket實例 Session_class = sessionmaker(bind=engine) #生成session實例,如同pymysql內的cursor Session = Session_class() #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# from sqlalchemy import func # func.count統計數量(類對象.統計字段),顯示字段 # .group_by(統計字段).all() print(Session.query(func.count(User.name),User.name).group_by(User.name).all()) #至關於原生sql爲 #SELECT count(user.name) AS count_1, user.name AS user_name #FROM user GROUP BY user.name #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #現此才統一提交,建立數據 Session.commit()
import sqlalchemy # 調用連接數據庫 from sqlalchemy import create_engine # 調用基類Base from sqlalchemy.ext.declarative import declarative_base # 調用Column建立字段 加類型 from sqlalchemy import Column, Integer, String,DATE,Enum # 調用操做連接 from sqlalchemy.orm import sessionmaker # create_engine 連接數據庫 mysql+pymysql:連接對象//用戶名:密碼@主機/DB # encoding='utf-8' 連接字符集 ,echo=True 把全部信息打印出來 engine = create_engine("mysql+pymysql://root:123456@192.168.1.154/xiang",encoding='utf-8', #echo=True ) # 生成orm基類 Base = declarative_base() # 繼承Base class User(Base): # __tablename__ 表名 __tablename__ = 'user' # Column字段(數據類型 Integer整數,primary_key=True主鍵) id = Column(Integer, primary_key=True) # Column字段(String(32)字符長度) name = Column(String(32)) # Column字段(String(64)字符長度) password = Column(String(64)) # 返回一個能夠用來表示對象的可打印字符串 def __repr__(self): return "<%s name:%s>"%(self.id,self.name) class User2(Base): # __tablename__ 表名 __tablename__ = 'user2' # Column字段(數據類型 Integer整數,primary_key=True主鍵) id = Column(Integer, primary_key=True) # Column字段(String(32)字符長度) name = Column(String(32)) # Column字段(String(64)字符長度) password = Column(String(64)) # 返回一個能夠用來表示對象的可打印字符串 def __repr__(self): return "<%s name:%s>"%(self.id,self.name) # 建立與數據庫的會話session class ,注意,這裏返回給session的是個class,不是實例 # bind=engine 綁定engine socket實例 Session_class = sessionmaker(bind=engine) #生成session實例,如同pymysql內的cursor Session = Session_class() #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# # Session.query(表1,表2).filter(表1.字段==表2.字段).all() print(Session.query(User,User2).filter(User.id==User2.id).all()) #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #現此才統一提交,建立數據 Session.commit()
import sqlalchemy # 調用連接數據庫 from sqlalchemy import create_engine # 調用基類Base from sqlalchemy.ext.declarative import declarative_base # 調用Column建立字段 加類型 from sqlalchemy import Column, Integer, String,DATE,Enum # 調用操做連接 from sqlalchemy.orm import sessionmaker # create_engine 連接數據庫 mysql+pymysql:連接對象//用戶名:密碼@主機/DB # encoding='utf-8' 連接字符集 ,echo=True 把全部信息打印出來 engine = create_engine("mysql+pymysql://root:123456@192.168.1.154/xiang",encoding='utf-8', #echo=True ) # 生成orm基類 Base = declarative_base() # 繼承Base class User(Base): # __tablename__ 表名 __tablename__ = 'user' # Column字段(數據類型 Integer整數,primary_key=True主鍵) id = Column(Integer, primary_key=True) # Column字段(String(32)字符長度) name = Column(String(32)) # Column字段(String(64)字符長度) password = Column(String(64)) # 返回一個能夠用來表示對象的可打印字符串 def __repr__(self): return "<%s name:%s>"%(self.id,self.name) class User2(Base): # __tablename__ 表名 __tablename__ = 'user2' # Column字段(數據類型 Integer整數,primary_key=True主鍵) id = Column(Integer, primary_key=True) # Column字段(String(32)字符長度) name = Column(String(32)) # Column字段(String(64)字符長度) password = Column(String(64)) # 返回一個能夠用來表示對象的可打印字符串 def __repr__(self): return "<%s name:%s>"%(self.id,self.name) # 建立與數據庫的會話session class ,注意,這裏返回給session的是個class,不是實例 # bind=engine 綁定engine socket實例 Session_class = sessionmaker(bind=engine) #生成session實例,如同pymysql內的cursor Session = Session_class() #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# # Session.query(表1).join(表2).all() print(Session.query(User).join(User2).all()) # Session.query(表1).join(表2,isouter=True) print(Session.query(User).join(User2,isouter=True).all()) #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #現此才統一提交,建立數據 Session.commit()
import sqlalchemy # 調用連接數據庫 from sqlalchemy import create_engine # 調用基類Base from sqlalchemy.ext.declarative import declarative_base # 調用Column建立字段 加類型 from sqlalchemy import Column, Integer, String # 調用操做連接 from sqlalchemy.orm import sessionmaker # create_engine 連接數據庫 mysql+pymysql:連接對象//用戶名:密碼@主機/DB # encoding='utf-8' 連接字符集 ,echo=True 把全部信息打印出來 engine = create_engine("mysql+pymysql://root:123456@192.168.1.154/xiang",encoding='utf-8', #echo=True ) # 生成orm基類 Base = declarative_base() # 繼承Base class User(Base): # __tablename__ 表名 __tablename__ = 'user' # Column字段(數據類型 Integer整數,primary_key=True主鍵) id = Column(Integer, primary_key=True) # Column字段(String(32)字符長度) name = Column(String(32)) # Column字段(String(64)字符長度) password = Column(String(64)) # 返回一個能夠用來表示對象的可打印字符串 def __repr__(self): return "<%s name:%s>"%(self.id,self.name) # 建立與數據庫的會話session class ,注意,這裏返回給session的是個class,不是實例 # bind=engine 綁定engine socket實例 Session_class = sessionmaker(bind=engine) #生成session實例,如同pymysql內的cursor Session = Session_class() #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# # 添加一條數據User fuck_user = User(name='Rain',password='12345') Session.add(fuck_user) # 這時看session裏有你剛添加和修改的數據 # User.name.in_([數據1,數據2]),打印數據1或數據2 print(Session.query(User).filter(User.name.in_(['Jack','rain'])).all()) # 回滾命令 Session.rollback() # 數據回滾後再次查看 print(Session.query(User).filter(User.name.in_(['Jack','rain'])).all()) #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #+-+-++-+-++-+-++-+-++-+-++-+-++-+-++-+-# #現此才統一提交,建立數據 Session.commit()