Python 之 sqlalchemy 外键正反向关联查询

表内容:

Python 之  sqlalchemy 外键正反向关联查询

代码:

#Author Kang

import sqlalchemy
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column,Integer,String,ForeignKey
from sqlalchemy.orm import sessionmaker,relationship

#创建对象的基类:
Base = declarative_base()

#定义User对象:
class User(Base):
    #表的名字:
    __tablename__ = 'user'
    #表的结构:
    userid = Column(Integer,primary_key=True)
    username = Column(String(20))
    age = Column(Integer)
    department = Column(String(20))
    salary = relationship("Salary",backref="test")

    #def __repr__(self):
    #    return "userid:%s name:%s age:%s department:%s money:%s "%(self.userid,self.username,self.age,self.department,self.salary[0])

#定义Salary对象:
class Salary(Base):
    #表的名字:
    __tablename__ = 'salary'
    #表的结构:
    id = Column(Integer,primary_key=True)
    userid = Column(Integer,ForeignKey("user.userid"))
    month = Column(Integer)
    money = Column(Integer)

    def __repr__(self):
        return "%s" % (self.money)

#初始化数据库连接
engine = create_engine("mysql+pymysql://kang:123456@10.3.152.35/test",encoding="utf-8")

#创建session类型
DBSession = sessionmaker(bind=engine)

#创建session对象
session = DBSession()

print("Salary表,通过backref反向查询User的姓名信息>>>>>>>>>>>>>>")
e1 = session.query(Salary).filter_by(userid=3).first()
print(e1.test.username,e1.money)

print("user表,正向查询salary工资信息>>>>>>>>>>>>>>>>>>>>>>>>")
res = session.query(User).filter_by(username='MingKang').first()
print(res.username,res.salary[0])

结果:

Salary表,通过backref反向查询User的姓名信息>>>>>>>>>>>>>>
MingKang 12000
user表,正向查询salary工资信息>>>>>>>>>>>>>>>>>>>>>>>>
MingKang 12000

转载于:https://blog.51cto.com/12965094/2362588

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值