python中sqlalchemy框架的使用,不再用寫長到噁心的sql插入語句

import timemysql

# 建立實例,並連接數據庫
from sqlalchemy import create_engine
from sqlalchemy import Column
from sqlalchemy import Integer
from sqlalchemy import String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmakersql

 

engine = create_engine('mysql+pymysql://root:qwe123@192.168.59.111/tao_bao?charset=utf8',
encoding='utf-8', echo=True) # //後面---用戶名:密碼@ip/數據庫名數據庫

 

# 建立與數據庫的會話session class,注意這裏返回給session的是個class,不是實例
session_class = sessionmaker(bind=engine) # 實例和engine綁定
session = session_class() # 生成session實例,至關於遊標
Base = declarative_base() # 生成orm基類session


class parseHayao_liuliang(Base):
  __tablename__ = "history_liuliang" # 建立的表名orm

  id = Column(Integer, primary_key=True) # 自增加對象

  # 店鋪名
  shop_name = Column(String(25))
  # 查詢出數據的歷史日期
  history_date = Column(String(25))
  # 訪客數
  uv = Column(String(25))
  # 瀏覽量
  pv = Column(String(25))
  # 跳失率
  bounceRate = Column(String(25))
  # 人均瀏覽量
  avgPv = Column(String(25))
  # 平均停留時長
  stayTime = Column(String(25))
  # 老訪客數
  oldUv = Column(String(25))
  # 新訪客數
  newUv = Column(String(25))
  # 關注店鋪人數
  shopCltByrCnt = Column(String(25))
  # 當前時間
  date = Column(String(25))sqlalchemy

  def __init__(self):
    # 建立表結構(這裏是父類調子類)
    Base.metadata.create_all(engine)ip

  # 保存到mysql數據庫
  def insert(self):
    try:
      session.add(self) # 把要建立的數據對象添加到這個session裏, 一會統一建立
      session.commit() # 現此才統一提交,建立數據
    except Exception as e:
      print(e)
      session.rollback()utf-8

  def to_mysql(self, item):
    data = item
    self.shop_name = '哈藥官方旗艦店'
    self.history_date = data['查詢日期']
    self.uv = data['訪客數']
    self.pv = data['瀏覽量']
    self.bounceRate = data['跳失率']
    self.avgPv = data['人均瀏覽量']
    self.stayTime = data['平均停留時間']
    self.oldUv = data['老訪客數']
    self.newUv = data['新訪客數']
    self.shopCltByrCnt = data['關注店鋪數']
    self.date = time.strftime('%Y-%m-%d %H:%M:%S')it

    self.insert()

    pass

相關文章
相關標籤/搜索