使用SQLAlchemy

參考:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014320114981139589ac5f02944601ae22834e9c521415000mysql

# coding: utf-8
import pymysql
pymysql.install_as_MySQLdb()
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, String, Integer

Base = declarative_base()

# 定義User對象:
class BaaUser(Base):
    # 表的名字:
    __tablename__ = 'baa_user'

    # 表的結構:
    id = Column(String(20), primary_key=True)
    name = Column(String(20))
    age = Column(Integer)
    work=Column(String(100))
    def __str__(self):
        return 'User(id={}, name={}, age={}, work={})'.format(self.id, self.name, self.age, self.work)

#鏈接數據庫
def getEngine():
    engine = create_engine('mysql://root:123456@127.0.0.1/baa?charset=utf8')
    #print(engine)
    return engine

def getSession():
    engine = getEngine()
    Base.metadata.create_all(engine)
    Session = sessionmaker(bind=engine)
    session = Session()
    return session

#建立
def createUser():
    usr = BaaUser(id='05', name='ts', age=35, work="teacher")
    # session.add(usr)
    session=getSession()
    session.add(usr)

    try:
        session.commit()
    except Exception as e:
        session.rollback()
        raise e

#查詢
def getUser():
    # 建立Session:
    session = getSession()
    # 建立Query查詢,filter是where條件,最後調用one()返回惟一行,若是調用all()則返回全部行:
    user = session.query(BaaUser).filter(BaaUser.id == '03').one()
    # 打印類型和對象的name屬性:
    print('type:', type(user))
    print('name:', user.name)
    # 關閉Session:
    session.close()

# createUser()
getUser()
相關文章
相關標籤/搜索