python經典orm框架sqlalchemy


在一般的項目中,簡單的訪問數據庫用pymysql就可以了,手寫一些SQL也沒有什么問題,但是對於一個大型系統,可能面對多次的數據庫增刪改查操作,如果都用手寫SQL實現,代碼會顯得很難看,開發效率也比較低,這個時候就推薦使用orm框架了。

python的orm框架有很多,我最早接觸的是django的內嵌orm,用起來的確很不錯,但目前並沒有獨立出來。

獨立的框架里面,比較經典的就是本文的主角sqlalchemy了。

from sqlalchemy import Column, String, create_engine, Integer
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base

# 創建對象的基類:
Base = declarative_base()
# 初始化數據庫連接:
engine = create_engine('mysql+pymysql://root:******@localhost:3306/scheduler')


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

    # 表的結構:
    id = Column(String(20), primary_key=True)
    name = Column(String(20))
    age = Column(Integer)

    def __repr__(self):
        return 'User(id={id},name={name},age={age})'.format(id=self.id, name=self.name, age=self.age)


# 創建所有定義的表到數據庫中
def init_db():
    Base.metadata.create_all(engine)


# 從數據庫中刪除所有定義的表
def drop_db():
    Base.metadata.drop_all(engine)


if __name__ == '__main__':
    drop_db()
    init_db()
    # 創建DBSession類型:
    DBSession = sessionmaker(bind=engine)
    # 創建session對象:
    session = DBSession()
    # 創建新User對象:
    new_user = User(id='7', name='ali', age=11)
    user1 = User(id='8', name='mary', age=12)
    user2 = User(id=1, name='bob', age=12)
    # 插入數據
    session.add(new_user)
    session.add_all([user2, user1])
    # 提交即保存到數據庫:
    session.commit()
    # 更新數據
    session.query(User).filter(User.name == 'ali').update({'name': 'da'})
    # 刪除數據
    session.query(User).filter(User.id == 1).delete()
    session.commit()
    # 查詢數據
    ret = session.query(User).all()
    print(ret)
    session.close()

 

sqlalchemy 的功能當然不止於此,隨着后面的學習,我會繼續補充到這里。

參考:

https://www.liaoxuefeng.com/wiki/1016959663602400/1017803857459008


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM