电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

基于SQLAlchemy實現操作MySQL并執行原生sql語句

瀏覽:107日期:2023-10-14 15:22:13

場景應用

老大我讓爬取內部網站獲取數據,插入到新建的表中,并每天進行爬取更新數據(后面做了定時任務)。然后根據該表統計每日的新增數量/更新數量進行制圖制表,向上級匯報。

思路構建

選用sqlalchemy+mysqlconnector,連接數據庫,創建表,對指定表進行CRUD

from sqlalchemy import exists, Column, Integer, String, ForeignKey, DateTime, Text, funcfrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import create_enginefrom sqlalchemy.orm import sessionmakerfrom conf.parseConfig import parseConf# 從配置文件中獲取數據庫信息host = parseConf.get_conf(’MySQLInfo’, ’host’)port = parseConf.get_conf(’MySQLInfo’, ’port’)dbname = parseConf.get_conf(’MySQLInfo’, ’dbname’)usernm = parseConf.get_conf(’MySQLInfo’, ’usernm’)passwd = parseConf.get_conf(’MySQLInfo’, ’passwd’)# 連接數據庫engine_str = 'mysql+mysqlconnector://{0}:{1}@{2}:{3}/{4}'.format(usernm, passwd, host, port, dbname)# 創建的數據庫引擎engine = create_engine(engine_str, encoding=’utf-8’)#創建session類型DBSession = sessionmaker(bind=engine)# 創建session對象,進行增刪改查:session = DBSession()# 實例化官宣模型 - Base 就是 ORM 模型Base = declarative_base()# 創建服務單表 繼承Base基類class ServiceOrder(Base): __tablename__ = ’serviceOrderTable’ serviceOrderId = Column(String(32), primary_key=True, comment=’服務單ID’) serviceDesc = Column(String(512), comment=’服務說明’) transferTimes = Column(String(32), comment=’轉派次數’) # 創建更新時間,對數據的更新進行記錄 updateTime = Column(DateTime, server_default=func.now(), onupdate=func.now())def init_db(): Base.metadata.create_all(engine)def drop_db(): Base.metadata.drop_all(engine)if __name__ == '__main__': # 每次執行時 會判斷表的存在性 對于數據庫中不存在的表進行創建 已存在的表則可以直接進行增刪改查 init_db() ### 首先講一下使用sqlalchemy執行原生的sql語句### # 方式一: res = session.execute(’select * from ServiceOrder’) # res是獲取的對象 all_res_list = res.fetchall() # all_res_list具體的結果 是列表 print(all_res_list ) # 結果: [(’數據提取’,), (’非數據提取’,)] # 方式二: conn = engine.connect() res = conn.execute(’select * from ServiceOrder’) all_res_list = res.fetchall() ### 使用創建好的session對象進行增刪改查 ### # 插入單條數據 # 創建新service0rder對象 new_serviceorder = ServiceOrder(serviceOrderId=’001’, serviceDesc=’ack’, transferTimes=’9’) # 添加到session session.add(new_serviceorder) # 提交即保存到數據庫 session.commit() # 插入多條數據 serviceorder_list = [ServiceOrder(serviceOrderId=’002’, serviceDesc=’好的’, transferTimes=’9’),ServiceOrder(serviceOrderId=’003’, serviceDesc=’起床’, transferTimes=’9’)] session.add_all(serviceorder_list) session.commit() # session.close() # 查詢 # 查詢是否存在 結果是布爾值 it_exists = session.query( exists().where(ServiceOrder.serviceOrderId == ’002’) ).scalar() # 創建Query查詢,filter是where條件 # 調用one() first()返回唯一行,如果調用all()則已列表的形式返回所有行: server_order = session.query(ServiceOrder).filter(ServiceOrder.serviceOrderId == ’003’).first() print(server_order.serviceDesc) serciceorders = session.query(ServiceOrder).filter(ServiceOrder.serviceDesc == ’好的’).all() # 改 更新數據 # 數據更新,將值為Mack的serviceDesc修改為Danny update_obj = session.query(ServiceOrder).filter(ServiceOrder.serviceDesc == ’Mack’).update({'serviceDesc': 'Danny'}) # 或則 update_objp = session.query(ServiceOrder).filter(ServiceOrder.serviceDesc == ’Mack’).first() update_objp.serviceDesc = ’Danny’ session.commit() # 刪除 update_objk = session.query(ServiceOrder).filter(ServiceOrder.serviceDesc == ’Mack’).delete() # 或則 update_objkp = session.query(ServiceOrder).filter(ServiceOrder.serviceDesc == ’Mack’).one() update_objkp.delete() session.commit() session.close()

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 物联网卡_物联网卡购买平台_移动物联网卡办理_移动联通电信流量卡通信模组采购平台? | [官网]叛逆孩子管教_戒网瘾学校_全封闭问题青少年素质教育_新起点青少年特训学校 | 杜康白酒加盟_杜康酒代理_杜康酒招商加盟官网_杜康酒厂加盟总代理—杜康酒神全国运营中心 | 泰州物流公司_泰州货运公司_泰州物流专线-东鑫物流公司 | 塑胶跑道_学校塑胶跑道_塑胶球场_运动场材料厂家_中国塑胶跑道十大生产厂家_混合型塑胶跑道_透气型塑胶跑道-广东绿晨体育设施有限公司 | 闸阀_截止阀_止回阀「生产厂家」-上海卡比阀门有限公司 | 优考试_免费在线考试系统_培训考试系统_题库系统_组卷答题系统_匡优考试 | 耐磨焊丝,堆焊焊丝,耐磨药芯焊丝,碳化钨焊丝-北京耐默公司 | 耳模扫描仪-定制耳机设计软件-DLP打印机-asiga打印机-fitshape「飞特西普」 | 医用空气消毒机-医用管路消毒机-工作服消毒柜-成都三康王 | 达利园物流科技集团-| 棕刚玉-白刚玉厂家价格_巩义市东翔净水材料厂 | 工业制氮机_psa制氮机厂家-宏骁智能装备科技江苏有限公司 | 精密机械零件加工_CNC加工_精密加工_数控车床加工_精密机械加工_机械零部件加工厂 | 翅片管换热器「型号全」_厂家-淄博鑫科环保 | 潍坊大集网-潍坊信息港-潍坊信息网 | 闭端端子|弹簧螺式接线头|防水接线头|插线式接线头|端子台|电源线扣+护线套|印刷电路板型端子台|金笔电子代理商-上海拓胜电气有限公司 | 水质监测站_水质在线分析仪_水质自动监测系统_多参数水质在线监测仪_水质传感器-山东万象环境科技有限公司 | 柔软云母板-硬质-水位计云母片组件-首页-武汉长丰云母绝缘材料有限公司 | 甲级防雷检测仪-乙级防雷检测仪厂家-上海胜绪电气有限公司 | 实验室装修_实验室设计_实验室规划设计- 上海广建净化工程公司 | 托利多电子平台秤-高精度接线盒-托利多高精度电子秤|百科 | 紧急切断阀_气动切断阀_不锈钢阀门_截止阀_球阀_蝶阀_闸阀-上海上兆阀门制造有限公司 | 首页 - 张店继勇软件开发工作室| 胃口福饺子加盟官网_新鲜现包饺子云吞加盟 - 【胃口福唯一官网】 | led太阳能路灯厂家价格_风光互补庭院灯_农村市政工程路灯-中山华可路灯品牌 | 螺杆真空泵_耐腐蚀螺杆真空泵_水环真空泵_真空机组_烟台真空泵-烟台斯凯威真空 | 自动气象站_农业气象站_超声波气象站_防爆气象站-山东万象环境科技有限公司 | 液晶拼接屏厂家_拼接屏品牌_拼接屏价格_监控大屏—北京维康 | 彩超机-黑白B超机-便携兽用B超机-多普勒彩超机价格「大为彩超」厂家 | 聚合氯化铝-碱式氯化铝-聚合硫酸铁-聚氯化铝铁生产厂家多少钱一吨-聚丙烯酰胺价格_河南浩博净水材料有限公司 | 板框压滤机-隔膜压滤机-厢式压滤机生产厂家-禹州市君工机械设备有限公司 | 贵州科比特-防雷公司厂家提供贵州防雷工程,防雷检测,防雷接地,防雷设备价格,防雷产品报价服务-贵州防雷检测公司 | 焊锡,锡膏,锡线,锡条,焊锡膏-绿志岛金属有限公司 | 2025黄道吉日查询、吉时查询、老黄历查询平台- 黄道吉日查询网 | 空心明胶胶囊|植物胶囊|清真胶囊|浙江绿键胶囊有限公司欢迎您! | 滚塑PE壳体-PE塑料浮球-警示PE浮筒-宁波君益塑业有限公司 | 中高频感应加热设备|高频淬火设备|超音频感应加热电源|不锈钢管光亮退火机|真空管烤消设备 - 郑州蓝硕工业炉设备有限公司 | 517瓜水果特产网|一个专注特产好物的网站 | 南京泽朗生物科技有限公司-液体饮料代加工_果汁饮料代加工_固体饮料代加工 | 法兰连接型电磁流量计-蒸汽孔板节流装置流量计-北京凯安达仪器仪表有限公司 |