python經典orm框架sqlalchemy

2022-06-12 09:21:11 字數 1991 閱讀 2698

在一般的專案中,簡單的訪問資料庫用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=,name=,age=)

'.format(id=self.id, name=self.name, age=self.age)

#建立所有定義的表到資料庫中

definit_db():

base.metadata.create_all(engine)

#從資料庫中刪除所有定義的表

defdrop_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()

#刪除資料

session.query(user).filter(user.id == 1).delete()

session.commit()

#查詢資料

ret =session.query(user).all()

print

(ret)

session.close()

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

參考:

ORM框架試驗

public class orm 新增方法 public int add t obj columnnames columns 0 columnname 列名列表 值的列表 values common.getdbvalue columns 0 columntype,convert.tostring p...

python之Django框架的ORM簡介

databases 2.在與django 專案同名的目錄下的 init py 檔案中寫下如下 告訴django 使用pymysql模組連線mysql資料庫 import pymysql pymysql.install as mysqldb 3.資料庫遷移的時候出現乙個警告 warnings mysq...

開源ORM框架iBATIS

除了hibernate外,另一流行的orm框架ibatis也使用廣泛。兩者的不同的在於,hibernate提供的是 一站式 的orm解決方案,而ibatis提供的是 半自動化 的orm實現。hibernate提供了從pojo到資料庫表的全套對映機制,開發人員往往只需要定義好pojo到資料庫表的對映關...