Python編程語(yǔ)言中,使用ORM(Object-Relational Mapping)來(lái)處理數(shù)據(jù)庫(kù)操作是十分方便的。ORM將關(guān)系數(shù)據(jù)庫(kù)的數(shù)據(jù)以面向?qū)ο蟮姆绞竭M(jìn)行管理,使開(kāi)發(fā)人員能夠更加輕松地進(jìn)行數(shù)據(jù)訪問(wèn)和處理。
#使用ORM庫(kù)sqlalchemy: from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker #連接數(shù)據(jù)庫(kù) engine=create_engine('mysql+pymysql://root:password@localhost:3306/mydb',echo=True) Session=sessionmaker(bind=engine) #定義模型類(lèi) from sqlalchemy import Column,Integer,String from sqlalchemy.ext.declarative import declarative_base Base=declarative_base() class User(Base): __tablename__='users' id=Column(Integer,primary_key=True) name=Column(String(50)) age=Column(Integer) #創(chuàng)建表 Base.metadata.create_all(engine)
在上述代碼中,我們首先使用sqlalchemy建立連接,然后通過(guò)定義模型類(lèi)來(lái)定義數(shù)據(jù)庫(kù)中的表。創(chuàng)建表的操作通過(guò)調(diào)用Base.metadata.create_all(engine)這條語(yǔ)句即可實(shí)現(xiàn)。
接下來(lái),我們可以通過(guò)會(huì)話(session)來(lái)進(jìn)行對(duì)數(shù)據(jù)的增、刪、改、查操作。
#增加一條記錄 session=Session() user=User(name='tom',age=18) session.add(user) session.commit() session.close() #查詢所有記錄 session=Session() u=session.query(User).all() for user in u: print('id:',user.id,'name:',user.name,'age:',user.age) session.close() #修改記錄 session=Session() user=session.query(User).filter(User.name=='tom').first() user.age=20 session.commit() session.close() #刪除記錄 session=Session() user=session.query(User).filter(User.name=='tom').first() session.delete(user) session.commit() session.close()
在這里,我們使用Session()函數(shù)創(chuàng)建會(huì)話對(duì)象,通過(guò)add()方法將需要操作的數(shù)據(jù)添加到會(huì)話中,然后通過(guò)commit()方法提交所有操作并保存更改。如果需要查詢數(shù)據(jù),則可使用query()方法進(jìn)行,查詢結(jié)果通過(guò)all()等方法來(lái)獲取。 修改和刪除數(shù)據(jù)操作同理,也需要在會(huì)話中進(jìn)行。