zoukankan      html  css  js  c++  java
  • sqlalchemy orm

     
    from sqlalchemy import create_engine, MetaData
    from sqlalchemy.ext.declarative import declarative_base
    from sqlalchemy.orm import sessionmaker, scoped_session
    
    engine = create_engine("mysql+pymysql://账号:密码@114.116.54.66:3306/db_bi")
    
    Session = sessionmaker(bind=engine)
    dbsession = scoped_session(Session)  获取引擎
    Base = declarative_base()
    md = MetaData(bind=engine)
    
    数据库连接
    from datasource.db.engine import Base, md
    from sqlalchemy import Table
    
    #表模型
    class Bargain(Base):
        __table__ = Table("tb_bargain", md, autoload=True)
    
    建立 表模型
    dbsession.query(Bargain).order_by(desc(Bargain.follow_date)).limit(1).all()
    
    查询时间最大的那一条
    follow_obj = follow_dbsession.query(Follow, Employee).join(Employee, Follow.EmpID == Employee.FYEmpID).filter(
                Follow.FlagTrashed == False,
                Follow.FlagDeleted == False,
                Follow.FollowID != "",
                Follow.DeleteAt.is_(None),
                Follow.FollowType.in_(
                    ['业主', '其他', '去电', '售后拜访', '议价',
                     '扫雷', '收意向', '收意向金', '来电', '空看',
                     '签单', '签合同']),
                Follow.FollowDate > where2_obj.operation_date)
    
    连表查询 
     for i in follow_obj:
                owner_pay_obj = OwnerPay(follow_id=i[0].FollowID, property_id=i[0].PropertyID, employee_id=i[1].EmployeeID,
                                         structure_id=i[0].DeptID,
                                         operation_date=i[0].FollowDate,
                                         data_source="follow_" + str(datetime.datetime.now().year),
                                         update_at=time.strftime("%Y-%m-%d %H:%M:%S"))
                owner_pay_list.append(owner_pay_obj)  #
    
    获取;连表查询 数据  连表时返回数据 第一个是数据是第一张表的,索引取1 是第二章表的数据
    执行原生sql
    
    cursor = follow_dbsession.execute(sql) 
    
    获取执行结果
    result = cursor.fetchall()

      

  • 相关阅读:
    STL简介
    Java语言实现简单FTP软件------>上传下载队列窗口的实现(七)
    c++模板
    10891
    错误处理:java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addFilter
    Linux crontab 语法和具体的例子
    LoadImage()使用
    matplotlib简单的新手教程和动画
    三白话经典算法系列 Shell排序实现
    AccountManager教程
  • 原文地址:https://www.cnblogs.com/yangxinpython/p/14637916.html
Copyright © 2011-2022 走看看