from sqlalchemy importcreate_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...