標籤:echo 添加 查詢 name pre ext zha from 理解
建立表和添加資料
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+pymysql://root:[email protected]/test_db", echo=True)#echo=True可以查看詳細資料
Base = declarative_base()
#建立表
class User(Base):
__tablename__ = ‘user‘#表名
id = Column(Integer, primary_key=True)
name = Column(String(32))
password = Column(String(64))
def __repr__(self):#顯示ORM查詢執行後的結果(不加這個方法返回的是記憶體位址)
return ‘%s:%s‘ % (self.name, self.password)
Base.metadata.create_all(engine) #建立表結構
#建立串連
Session_class = sessionmaker(bind=engine) #建立與資料庫的會話session class,注意,這裡返回的是一個類,不是一個執行個體
session = Session_class()#產生session執行個體 #可以先理解成curson遊標
#查詢
# data = session.query(User).filter(User.id < 2).all()#是一個列表
data = session.query(User).filter(User.id > 2).filter(User.id < 5)
print(data)
#插入資料
user_obj1 = User(name=‘lizhao‘, password=‘lizhaoqwe123‘)#產生要建立的資料對象
user_ibj2 = User(name=‘test‘, password=‘testqwe123‘)
session.add(user_obj1)
session.add(user_ibj2)
session.commit()#必須commit之後才會添加資料
ORM操作mysql