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