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

您的位置:首頁技術(shù)文章
文章詳情頁

基于sqlalchemy對mysql實(shí)現(xiàn)增刪改查操作

瀏覽:217日期:2023-10-14 14:12:03

需求場景:

老大讓我利用爬蟲爬取的數(shù)據(jù)寫到或更新到mysql數(shù)據(jù)庫中,百度了兩種方法

1 是使用pymysql連接mysql,通過操作原生的sql語句進(jìn)行增刪改查數(shù)據(jù);

2 是使用sqlalchemy連接mysql,通過ORM模型建表并操作數(shù)據(jù)庫,不需要寫原生的sql語句,相對簡單些;

以下就是本次使用sqlalchemy的經(jīng)驗(yàn)之談。

實(shí)現(xiàn)流程:連接數(shù)據(jù)庫》通過模型類創(chuàng)建表》建立會話》執(zhí)行創(chuàng)建表語句》通過會話進(jìn)行增刪改查

from sqlalchemy import exists, Column, Integer, String, ForeignKey, existsfrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import create_enginefrom sqlalchemy.orm import sessionmaker# 創(chuàng)建的數(shù)據(jù)庫引擎engine = create_engine('mysql+pymysql://user:pwd@ip/數(shù)據(jù)庫名?charset=utf8')#創(chuàng)建session類型DBSession = sessionmaker(bind=engine)# 實(shí)例化官宣模型 - Base 就是 ORM 模型Base = declarative_base()# 創(chuàng)建服務(wù)單表class ServiceOrder(Base): __tablename__ = ’serviceOrderTable’ id = Column(Integer, primary_key=True, autoincrement=True) serviceOrderId = Column(String(32), nullable=False, index=True, comment=’服務(wù)單ID’) serviceDesc = Column(String(268), comment=’服務(wù)說明’) oneLevelName = Column(String(32), comment=’C類別’) twoLevelName = Column(String(32), comment=’T子類’) threeLevelName = Column(String(32), comment=’I項(xiàng)目’) fourLevelName = Column(String(32), comment=’S子項(xiàng)’) transferTimes = Column(String(32), comment=’轉(zhuǎn)派次數(shù)’) overDueStatus = Column(String(32), comment=’過期狀態(tài)’) serviceTimeLimit = Column(String(32), comment=’服務(wù)時(shí)限’) serTimeLimitTypeName = Column(String(16), comment=’時(shí)限類型’) # 一對多: # serviceWorkOrder = relationship('ServiceWorkOrder', backref='serviceorder')# 多對一:多個(gè)服務(wù)工單可以屬于服務(wù)單class ServiceWorkOrder(Base): __tablename__ = ’serviceWorkOrderTable’ id = Column(Integer, primary_key=True, autoincrement=True) serviceWorkOrderId = Column(String(32), nullable=False, index=True, comment=’服務(wù)工單ID’) workOrderName = Column(String(268), comment=’工單名稱’) fromId = Column(String(32), comment=’服務(wù)單ID’) createUserSectionName = Column(String(32), comment=’創(chuàng)建人室’) createUserName = Column(String(32), comment=’創(chuàng)建人’) handlerName = Column(String(32), comment=’處理人’) statusName = Column(String(32), comment=’工單狀態(tài)’) createTime = Column(String(32), comment=’創(chuàng)建時(shí)間’) # “多”的一方的book表是通過外鍵關(guān)聯(lián)到user表的: # serviceOrder_id = Column(Integer, ForeignKey(’serviceOrderTable.id’))# 創(chuàng)建數(shù)據(jù)庫 如果數(shù)據(jù)庫已存在 則不會創(chuàng)建 會根據(jù)庫名直接連接已有的庫def init_db(): Base.metadata.create_all(engine)def drop_db(): Base.metadata.drop_all(engine)def insert_update(): # all_needed_data_lists 是需要插入數(shù)據(jù)庫的數(shù)據(jù) 格式[{key: value, ... }, { }, { }...] for item in all_needed_data_lists: ServiceOrderRow = ServiceOrder(serviceOrderId=item[’serviceOrderId’], serviceDesc=item[’serviceDesc’], oneLevelName=item[’oneLevelName’], twoLevelName=item[’twoLevelName’], threeLevelName=item[’threeLevelName’], fourLevelName=item[’fourLevelName’], transferTimes=item[’transferTimes’], overDueStatus=item[’overDueStatus’], serviceTimeLimit=item[’serviceTimeLimit’], serTimeLimitTypeName=item[’serTimeLimitTypeName’], ) try: # 利用exists判斷目標(biāo)對象是否存在,返回True或Faults it_exists = session.query( exists().where(ServiceOrder.serviceOrderId == item[’serviceOrderId’] )).scalar() except Exception as e: self.log.error(e) break try: # 如果不存在,進(jìn)行新增;存在的話就更新現(xiàn)存的數(shù)據(jù) if not it_exists:session.add(ServiceOrderRow) else:session.query(ServiceOrder).filter(ServiceOrder.serviceOrderId == item[’serviceOrderId’]) .update(item) except Exception as e: self.log.error(e) break try: session.commit() self.log.info(’數(shù)據(jù)更新成功!’) except: session.rollback() self.log.info(’數(shù)據(jù)更新失敗!’)if __name__ == '__main__': # 創(chuàng)建數(shù)據(jù)庫 如果數(shù)據(jù)庫已存在 則不會創(chuàng)建 會根據(jù)庫名直接連接已有的庫 init_db() # 創(chuàng)建session對象,進(jìn)行增刪改查: session = DBSession() # 利用session 增 改數(shù)據(jù) 記得提交 insert_update()

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: MySQL 數(shù)據(jù)庫
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产成人精品一区二区三区免费| 三上悠亚国产精品一区二区三区| 亚洲夜间福利| 亚洲大片在线| 亚洲福利专区| 黑丝一区二区| 亚洲在线免费| 亚洲+小说+欧美+激情+另类| 日本不卡一区二区三区| 欧美亚洲福利| 久久亚洲精精品中文字幕| 国产一区二区三区天码| 久久99精品久久久久久园产越南 | 久久亚洲精品伦理| 噜噜噜躁狠狠躁狠狠精品视频 | 911精品国产| 怡红院精品视频在线观看极品| 亚洲精品永久免费视频| 樱桃成人精品视频在线播放| 欧美日韩一区二区国产| 日本午夜大片a在线观看| 中文在线а√天堂 | 亚洲一区二区三区四区五区午夜 | 久久这里只有精品一区二区| 精品国产亚洲一区二区在线观看| 日本久久黄色| 亚洲午夜精品久久久久久app| 国产精品av一区二区| 日韩精品一二区| 69堂免费精品视频在线播放| 福利精品一区| 悠悠资源网久久精品| 欧美亚洲免费| 蜜臀久久精品| 综合亚洲视频| 国产成年精品| 巨乳诱惑日韩免费av| 国产精品一在线观看| 日韩中文在线电影| 亚洲人成在线影院| 精品网站999| 在线亚洲精品| 青青国产91久久久久久| 精品视频久久| 国产亚洲精品v| 国产精品极品在线观看| 亚洲调教视频在线观看| 久久精品72免费观看| 麻豆精品蜜桃| 免费国产自线拍一欧美视频| 蜜桃视频在线观看一区二区| 欧美日韩免费看片| 日韩中文字幕| 亚洲永久字幕| 久久视频国产| 夜夜精品视频| 亚洲色图综合| 国产极品一区| 亚洲色图国产| 欧美韩日一区| 亚洲人成亚洲精品| 日产精品一区二区| 色综合视频一区二区三区日韩| 久久精品三级| 亚洲成人av观看| 亚洲男女自偷自拍| 国产一区二区色噜噜| 中文字幕亚洲影视| 国产不卡一区| 久久国产生活片100| 在线亚洲免费| 国产日韩电影| 欧美日韩91| 欧美va天堂在线| 91亚洲国产| 国产精品亚洲人成在99www| 亚洲欧美日韩在线观看a三区| 国产拍在线视频| 国产精品视频一区视频二区| 国产精品亚洲片在线播放| 免播放器亚洲一区| 久久一区二区三区喷水| 国产999精品在线观看 | 久久久久久久久丰满| 国产精品久久| 日本少妇精品亚洲第一区| 久久久天天操| 日韩av二区| 欧美激情三区| 日韩激情中文字幕| 另类av一区二区| 国产精品白丝久久av网站| 日韩精品导航| 亚洲黄色免费看| 麻豆精品网站| 日本不卡免费高清视频在线| 五月国产精品| 亚洲v在线看| 精品久久亚洲| 免费视频久久| 久热综合在线亚洲精品| 91欧美极品| 亚洲精品四区| 丝袜诱惑制服诱惑色一区在线观看 | 伊人网在线播放| 国产欧美日韩在线一区二区| 亚洲精品国产精品粉嫩| 999在线观看精品免费不卡网站| 久久久久九九精品影院| 欧美欧美黄在线二区| 亚洲1区在线| 亚洲精品自拍| 人人精品久久| 欧美日韩一区二区高清| 91久久精品无嫩草影院| 91精品国产经典在线观看| 日韩激情一区二区| 日韩国产在线观看| 日韩高清三区| 88久久精品| 国产欧美91| 国产精品久久久久77777丨| 欧美国产日韩电影| 欧美日本一区| 国产精品一区二区三区美女| 国产日韩欧美中文在线| 国产欧美午夜| 欧美a一区二区| 韩国三级一区| 亚洲黄色在线| а√天堂8资源中文在线| 精品美女视频 | 日韩精品专区| 久久av影院| 麻豆91在线播放| 精品久久一区| 九九色在线视频| 欧美日韩一区二区综合| 亚洲精品网址| 亚洲ww精品| 免费日韩成人| 日韩影院二区| 婷婷成人基地| 免费观看在线综合色| 日本免费在线视频不卡一不卡二| 日韩毛片网站| 精品伊人久久久| 日韩在线观看| 在线亚洲成人| 69堂精品视频在线播放| 麻豆精品99| 日韩欧美午夜| 久久香蕉精品| 国产精品99精品一区二区三区∴| 日韩av有码| 在线一区欧美| 日韩国产欧美在线视频| 精品美女视频 | 美女国产一区| 国产精品一区二区精品视频观看| 精品久久中文| 亚洲精品国产偷自在线观看| 神马久久午夜| 国产一区一一区高清不卡| 好吊一区二区三区| 国产精品欧美三级在线观看| 激情婷婷欧美| 国产精品日本一区二区不卡视频| 91欧美日韩| 日本激情一区| 久久精品女人| 国产伦精品一区二区三区在线播放 | 日韩av一二三| 麻豆国产精品| 激情久久五月| 欧美精品观看| 久久精品91| 另类国产ts人妖高潮视频| 国产欧美日韩一区二区三区四区 | 亲子伦视频一区二区三区| 一区二区日韩免费看| 麻豆国产精品| 免费成人av在线播放| 日韩av片子| 日韩精品第一| 精品一区毛片| 国产高清精品二区| 91久久久精品国产| 日本色综合中文字幕| 欧美一级精品| 里番精品3d一二三区| 午夜一级久久| 日韩欧美一区二区三区在线视频 | 在线观看视频免费一区二区三区| 好看不卡的中文字幕| 美女国产精品久久久| 石原莉奈在线亚洲二区| 黑森林国产精品av| 欧美在线看片| 视频一区视频二区在线观看|