使用sqlalchemy運算元據庫

2022-08-18 02:24:13 字數 1518 閱讀 4174

from sqlalchemy import

create_engine, column, integer, string, datetime, float, date, blob, func, foreignkey, extract, and_, or_, text

from sqlalchemy.orm import

sessionmaker

from sqlalchemy.ext.declarative import

declarative_base #

建立基類

modelbase =declarative_base() #

建立對映表

class

user(modelbase):

__tablename__ = '

user

'id = column(integer, primary_key=true, autoincrement=true)自增主鍵

name = column(string(80))

createtime = column(datetime, index=true)

class

sqlutil:

#使用contextmanager模組建立乙個上下文管理器

@contextmanager

defsession_scope(self):

session =self.session()

try:

yield

session

session.commit()

except

: session.rollback()

raise

finally

: session.close()

#初始化 建立引擎,建表,生成資料庫連線物件

def__init__(self, update_or_not=false):

url = '

mysql+pymysql://user:pas@ip:port/db?charset=utf8mb4

'engine =create_engine(

url, pool_size=5, max_overflow=0, pool_pre_ping=true,

echo=true) #

echo=true for debug

modelbase.metadata.create_all(engine)

self.session = sessionmaker(bind=engine, autoflush=false)

#運算元據

defget_user_name(self, name):

with self.session_scope() as sess:

info = sess.query(user).all() #

查詢; sess.add 插入。

參考sqlalchemy1.4文件:

flask-sqlalchemy文件:

SQLAlchemy批量運算元據

批量插入 list dict 把要插入的資料以字典的形式做成列表,然後把列表傳入api,就可以實現批量插入的操作,和單條插入比起來效率快了很多。但是有的driver mysql connector 好像不支援utf8mb4的資料表編碼的表的批量插入,所以構造engine時要注意不要使用utf8mb4...

python中SQLAlchemy 運算元據庫

sqlalchemy為python提供了不同資料庫的統一介面,採用orm的方式運算元據庫。sqlalchemy 是python程式語言下的一款開源軟體。提供了sql工具包及物件關係對映 orm 工具。物件關係對映 使用者使用python定義的類 與 資料庫中的表相關聯的一種方式,類的例項則對應資料表...

使用ExecuteNonQuery()運算元據

函式executenonquery 可以對資料庫執行更新,插入,刪除操作,並返回操作影響的行數,若執行語句不是sql語句,則返回 1,應用例項如下 配置檔案資訊 程式 如下 using system using system.data using system.configuration using...