日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python實現sqlalchemy的使用概述

瀏覽:26日期:2022-07-29 09:16:12
目錄使用概述一、創建引擎和會話二、定義類來表示虛擬表格三、增刪改查四、進階技能

sqlAlchemy解讀: https://www.jb51.net/article/174565.htm

sqlAlchemy解讀:https://www.jb51.net/article/173950.htm

特點是操縱Python對象而不是SQL查詢,也就是在代碼層面考慮的是對象,而不是SQL,體現的是一種程序化思維,這樣使得Python程序更加簡潔易懂。

具體的實現方式是將數據庫表轉換為Python類,其中數據列作為屬性,數據庫操作作為方法。

abstract # 輔助sqlAlchemy實現類的繼承,自動繼承屬性,省去super() SQLAlchemy定義的ORM,在繼承父級ORM時候,Foreign Key外鍵是不能繼承的,它強制要求在子類中重新定義。使用概述

在使用sqlalchemy訪問數據庫的時候,以類的形式表示表格,因此在使用之前,需要先定義類。

類的定義有三種:基類BASE、父類、子類

基類是sqlalchemy底層的;當需要一份數據切分為多個子表的時候,或多個表的字段一致時,可以使用一個父類定義字段的類型,多個子表繼承父類的屬性。

一、創建引擎和會話

通過創建引擎、綁定引擎來創建會話,實現數據庫的訪問。

from sqlalchemy import create_engine # 引擎from sqlalchemy.orm import sessionmaker # 創建orm的會話池,orm和sql均可以管理對象關系型數據庫,需要綁定引擎才可以使用會話,# 創建連接engine = create_engine('mysql+pymysql://root:1234;@127.0.0.1/test', # 需要安裝mysql和pymysql的模塊,用戶名:密碼@ip地址/某個數據庫 #echo=True, # 打印操作對應的SQL語句 pool_size=8, # 連接個數 pool_recycle=60*30 # 不使用時斷開 )# 創建sessionDbSession = sessionmaker(bind=engine) # 會話工廠,與引擎綁定。session = DbSession() # 實例化session.close() # 關閉會話二、定義類來表示虛擬表格

在使用sqlalchemy訪問數據庫的時候,以類的形式表示表格,因此在使用之前,需要先定義類。使用類的名稱而不是tablename實現之后的增刪改查。

# 導入定義類需要的模塊from sqlalchemy.ext.declarative import declarative_base # 調用sqlalchemy的基類from sqlalchemy import Column, Index, distinct, update# 指定字段屬性,索引、唯一、DMLfrom sqlalchemy.types import *# 所有字段類型

1. 直接建立一個可調用的表格

需要先繼承基類,在定義__init__函數,設置輸入參數。

# 創建庫表類型Base = declarative_base() # 調用sqlalchemy的基類class Users(Base): ’’’繼承基類’’’ __tablename__ = 'users' # 數據表的名字 __table_args__ = {’extend_existing’: True} # 當數據庫中已經有該表時,或內存中已聲明該表,可以用此語句重新覆蓋聲明。 id = Column(Integer, primary_key=True) name = Column(String(64), unique=True) #email = Column(String(64)) def __init__(self, name, email):self.name = nameself.email = email # 聲明需要調用的特征,可以只聲明數據庫中表格列的子集Base.metadata.create_all(engine)# 表生效:將所有定義的類,使用引擎創建,此時可以在數據庫中看到這些表。

2. 創建多個相同列屬性的表格 先建立一個表格的父類,指定列的屬性,再通過繼承父類

不同的表

# 創建庫表類型Base = declarative_base() # 調用sqlalchemy的基類class model_data(BASE): ’’’創建數據庫表類:模型所需的基本字段’’’ __abstract__ = True # 輔助sqlAlchemy實現類的繼承,自動繼承屬性,省去super() __table_args__ = {’extend_existing’: True} # 若表的聲明在內存中已存在,則重新聲明表的名稱,不然會報錯 ai_xdr_id = Column(BigInteger(), primary_key=True, unique=True, autoincrement= True) ai_sdk_id = Column(BigInteger())class TrainData(model_data): # 訓練集表 ’’’繼承model_data的屬性,并將表的名字定義為:’xxx_train_data’存入數據庫 ’’’ __tablename__ = ’xxx_train_data’ class DevData(model_data): # 開發集表 ’’’表的名字定義為:’xxx_dev_data’ ’’’ __tablename__ = ’xxx_dev_data’class TestData(model_data): # 測試集表 __tablename__ = ’xxx_test_data’Base.metadata.create_all(engine)# 表生效:將所有定義的類,使用引擎創建,此時可以在數據庫中看到這些表。三、增刪改查

因為是會話操作,當某個語句,例如增加數據時,不成功的時候需要回滾。

增加數據

# 增加數據add_user = Users('test3', 'test123@qq.com')session.add(add_user)session.commit()# add_users = Users(('test', 'test123@qq.com'),(’a’,’b’)))# session.add(add_users)# session.commit()# 當上述語句出現執行錯誤時,需要執行回滾語句,才能繼續操作session.rollback()

刪除數據

delete_users = session.query(Users).filter(Users.name == 'test').first()if delete_users: session.delete(delete_users) session.commit() session.query(Users).filter(Users.name == 'test').delete()session.commit()

更改數據

# 改session.query(Users).filter_by(id=1).update({’name’: 'Jack'})users = session.query(Users).filter_by(name='Jack').first()users.name = 'test'

查找數據

users = session.query(Users).filter_by(id=5).all()for item in users: print(item.name) print(item.email) # 若未在類中聲明,則無法訪問數據庫中該表的屬性。四、進階技能

1. 將DataFrame格式的數據導入數據庫

class DataAccessLayer:# 數據連接層、定義了連接和關閉。 ’’’數據連接層、定義了連接和關閉。’’’ def __init__(self):self.ENGINE = None # 引擎self.SESSION = None# 會話self.conn_string = 'mysql+pymysql://root:1234;@127.0.0.1/test' ## 需要安裝mysql和pymysql的模塊,用戶名:密碼@ip地址/某個數據庫 def connect(self):’’’連接時建立引擎和會話。’’’self.ENGINE = create_engine(self.conn_string, encoding=’utf-8’,isolation_level='AUTOCOMMIT', connect_args={’connect_timeout’: 7200})# self.ENGINE = create_engine(self.conn_string, encoding=’utf-8’,connect_args={’connect_timeout’: 7200})self.SESSION = sessionmaker(bind=self.ENGINE)() def disconnect(self):’’’斷開時,關閉引擎。’’’self.ENGINE.close()def df_save_db(df,tablename): ’’’將數據集DataFrame保存到數據庫’’’ db_ac = DataAccessLayer() db_ac.connect() conn = db_ac.ENGINE.connect() df.to_sql(name=tablename, con=conn, if_exists=’append’, index=False) conn.close() print(’%s updated.’%tablename)df = pd.read_csv(’traindata_jiangsu_donghai.csv’)df_save_db(df,’traindata_jiangsu_donghai’)

到此這篇關于python實現sqlalchemy的使用的文章就介紹到這了,更多相關python sqlalchemy使用內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日本一区二区中文字幕| 丝袜美腿亚洲色图| 色婷婷成人网| 成人看片网站| 日韩av有码| 国产成年精品| 欧美激情国产在线| 久久影院午夜精品| 精品免费av在线| 欧美成人午夜| 首页国产欧美日韩丝袜| 亚洲欧美专区| 欧美在线首页| 国产成人免费av一区二区午夜| 国产不卡人人| 日韩在线短视频| 影音国产精品| 婷婷视频一区二区三区| 国产精品嫩草影院在线看| 国产精品chinese| 97欧美在线视频| 欧美日韩亚洲在线观看| 久久国产精品毛片| 日本不卡免费高清视频在线| 开心激情综合| www在线观看黄色| 亚洲特级毛片| 亚洲aa在线| 激情综合婷婷| 婷婷精品进入| 亚洲精品少妇| 国内不卡的一区二区三区中文字幕| 91精品韩国| 久久国产高清| 精品国产一区二区三区噜噜噜| 久久久影院免费| 日本精品另类| 亚洲伦乱视频| 亚洲欧洲美洲国产香蕉| 精品成av人一区二区三区 | 久久久国产精品入口麻豆| 激情亚洲影院在线观看| 久久福利影视| 久久精品一本| 香蕉视频成人在线观看| 国产精品一区二区美女视频免费看 | 国产精品a级| 91精品一区二区三区综合在线爱| 亚洲青青久久| 国产精品99视频| 免费在线看一区| 风间由美中文字幕在线看视频国产欧美| 久久国产小视频| 国产精品一区二区三区www| 亚洲午夜电影| 麻豆极品一区二区三区| 狠狠久久婷婷| 麻豆国产欧美一区二区三区 | 亚洲精品人人| 日韩在线观看一区| 日本在线成人| 91精品一区二区三区综合| 911亚洲精品| jiujiure精品视频播放| 久久99视频| 综合视频一区| 91精品亚洲| 麻豆国产91在线播放| 天使萌一区二区三区免费观看| 国产成人77亚洲精品www| 视频国产精品| 在线一区电影| 国产黄大片在线观看| 日本午夜精品| 久久www成人_看片免费不卡| 日韩不卡一区| 国产视频一区二| 天堂成人国产精品一区| 91精品国产自产在线观看永久∴ | 久久视频一区| 精品网站aaa| 日韩av影院| 亚洲欧美久久久| 日韩大片免费观看| 国产精品亲子伦av一区二区三区| 免费成人在线观看| 999精品在线| 麻豆成人91精品二区三区| 亚洲一区av| 国产一区导航| 亚洲先锋成人| 快播电影网址老女人久久| 精品视频久久| 国产精品男女| 91亚洲精品视频在线观看| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲电影在线一区二区三区| 日韩欧美一区二区三区免费看| 久久精品资源| 国产精品xxx在线观看| 日本精品久久| 日韩在线视频一区二区三区| 国产精品日本欧美一区二区三区| 热三久草你在线| 色婷婷综合网| 粉嫩av一区二区三区四区五区| 国产精品亚洲成在人线| 欧美影院视频| 久久大逼视频| 亚洲在线免费| 蜜桃伊人久久| 午夜在线观看免费一区| av亚洲免费| 亚洲91视频| 欧美性感美女一区二区| 欧洲亚洲一区二区三区| 亚洲成人一区在线观看| 日韩中文影院| 91av亚洲| 久久国产日韩| 欧美不卡视频| 夜夜嗨一区二区| 视频一区中文| 天堂中文av在线资源库| 日韩免费小视频| 欧美日韩在线观看首页| 精品视频一区二区三区在线观看| 国产欧美一区| 国产欧美综合一区二区三区| 国产欧美激情| 日韩av资源网| 国产精品一区免费在线| 国产伦精品一区二区三区视频 | 国产色噜噜噜91在线精品| 欧美日韩精品一区二区三区视频 | 欧美aa国产视频| 欧美精品一区二区久久| 免费精品国产的网站免费观看| 亚洲不卡av不卡一区二区| 久久国产电影| 免费日韩一区二区| 亚洲字幕久久| 国产欧美久久一区二区三区| 国产精品免费不| 成人国产精品一区二区免费麻豆| 国产一区二区三区四区二区| 在线天堂中文资源最新版| 欧美香蕉视频| 欧美特黄一区| 日韩一区精品视频| 亚洲精品无播放器在线播放| 国产精品午夜一区二区三区| 久久99国产精品视频| 国产亚洲一区二区手机在线观看| 五月天激情综合网| 亚洲精品三级| 精品三级av在线导航| 欧洲av不卡| 亚洲欧美日韩专区| 91成人精品在线| 国产一区二区精品久| 免费欧美一区| 欧美天堂一区| 中文字幕人成乱码在线观看| 少妇久久久久| 中文无码久久精品| 国产精品4hu.www| 久久久精品久久久久久96| 免费人成网站在线观看欧美高清| 欧美日本三区| 裤袜国产欧美精品一区| 国产亚洲永久域名| 国产精品中文| 在线日韩av| 欧美日韩一区自拍| 欧美亚洲国产一区| 91国内精品| 特黄毛片在线观看| 亚洲狼人精品一区二区三区| 国产亚洲精品美女久久 | 日本美女一区| 在线精品国产亚洲| 久久亚洲道色| 欧美在线影院| 国产精品久久久久久妇女| 香蕉精品久久| 欧美日韩夜夜| 亚洲不卡av不卡一区二区| 日本亚洲最大的色成网站www | 国产精品亚洲一区二区在线观看| 日韩欧美三级| 日韩一区免费| 久久中文亚洲字幕| 国产精品对白久久久久粗| 亚洲欧洲日本mm| 精品一区二区三区在线观看视频 | 91精品国产福利在线观看麻豆| 亚州av一区| 99精品在线观看| 国产精品久久久免费|