通过查询多个父亲,对应一个儿子

 #!/usr/bin/env python3
 # -*- coding: utf-8 -*-
 """
 @author: zengchunyun
 """
 from sqlalchemy import Column, Integer, String, Float, DateTime, ForeignKey
 from sqlalchemy.orm import sessionmaker, relationship, backref
 from sqlalchemy.ext.declarative import declarative_base
 from sqlalchemy import create_engine

 Base = declarative_base()
 engine = create_engine('mysql+pymysql://root:123@127.0.0.1:3306/day11',echo=True)

 class Parent(Base):
     __tablename__ = 'parent'
     id = Column(Integer, primary_key=True)
     name = Column(String(64))
     child_id = Column(Integer, ForeignKey("child.id"))
     childr = relationship("Child")

 class Child(Base):
     __tablename__ = 'child'
     id = Column(Integer, primary_key=True)
     name = Column(String(64))

 Base.metadata.create_all(engine)

 DBSession = sessionmaker()
 DBSession.configure(bind=engine)
 session = DBSession()  # 打开数据连接

 ret = session.query(Parent).filter(Parent.name == 'zeng').one()
 print(ret)
 print(ret.childr.name)
 ret = session.query(Parent).filter(Parent.name == 'chunyun').one()
 print(ret)
 print(ret.childr.name)

 ret = session.query(Parent).filter(Parent.name == 'chun').one()
 print(ret)
 print(ret.childr.name)

many to one 第二式

 class Parent(Base):
     __tablename__ = 'parent'
     id = Column(Integer, primary_key=True)
     name = Column(String(64))
     child_id = Column(Integer, ForeignKey("child.id"))
     childr = relationship("Child", back_populates="parents")

 class Child(Base):
     __tablename__ = 'child'
     id = Column(Integer, primary_key=True)
     name = Column(String(64))
     parents = relationship("Parent", back_populates="childr")找到父亲

 #通过双向建立映射关系,能让父亲查到儿子,也能让儿子

many to one 终极版

 class Parent(Base):
     __tablename__ = 'parent'
     id = Column(Integer, primary_key=True)
     name = Column(String(64))
     child_id = Column(Integer, ForeignKey("child.id"))
     childr = relationship("Child", backref="parents")  # 这段代码,变相的等于在Child类中添加了parents = relationship("Parent", back_populates="childr")

 class Child(Base):
     __tablename__ = 'child'
     id = Column(Integer, primary_key=True)
     name = Column(String(64))

python 之sqlalchemy many to one的更多相关文章

  1. python之SQLAlchemy

    ORM介绍 orm英文全称object relational mapping,就是对象映射关系程序,简单来说我们类似python这种面向对象的程序来说一切皆对象,但是我们使用的数据库却都是关系型的,为 ...

  2. Python’s SQLAlchemy vs Other ORMs[转发 7] 比较结论

    Comparison Between Python ORMs For each Python ORM presented in this article, we are going to list t ...

  3. Python’s SQLAlchemy vs Other ORMs[转发 6]SQLAlchemy

    SQLAlchemy SQLAlchemy is an open source SQL toolkit and ORM for the Python programming language rele ...

  4. Python’s SQLAlchemy vs Other ORMs[转发 3]Django's ORM

    Django's ORM Django is a free and open source web application framework whose ORM is built tightly i ...

  5. Python’s SQLAlchemy vs Other ORMs[转发 2]Storm

    Storm Storm is a Python ORM that maps objects between one or more databases and Python. It allows de ...

  6. Python’s SQLAlchemy vs Other ORMs[转发 0]

    原文地址:http://pythoncentral.io/sqlalchemy-vs-orms/ Overview of Python ORMs As a wonderful language, Py ...

  7. Python’s SQLAlchemy vs Other ORMs[转发 1]SQLObject

    SQLObject SQLObject is a Python ORM that maps objects between a SQL database and Python. It is becom ...

  8. 【python】SQLAlchemy

    来源:廖雪峰 对比:[python]在python中调用mysql 注意连接数据库方式和数据操作方式! 今天发现了个处理数据库的好东西:SQLAlchemy 一般python处理mysql之类的数据库 ...

  9. Python之SQLAlchemy学习

    alchemy 英[ˈælkəmi] 美[ˈælkəmi] n. 炼金术; 炼丹术; (改变事物.物质的)魔力(或方法) ; (事物.物质的) 神秘变化; SQLAlchemy是Python中最有名的 ...

  10. python之SQLAlchemy ORM 上

    前言: SQLAlchmey是暑假学的,当时学完后也没及时写博客整理下.这篇博客主要介绍下SQLAlchemy及基本操作,写完后有空做个堡垒机小项目.下篇博客整理写篇关于Web框架和django基础~ ...

随机推荐

  1. 从零开始学 Java - Spring 集成 ActiveMQ 配置(二)

    从上一篇开始说起 上一篇从零开始学 Java - Spring 集成 ActiveMQ 配置(一)文章中讲了我关于消息队列的思考过程,现在这一篇会讲到 ActivMQ 与 Spring 框架的整合配置 ...

  2. MD5加密字符串

    public static String md5(String string) { byte[] hash; try { hash = MessageDigest.getInstance(" ...

  3. java入门之从C#快速入门java

    可变参数: Void sum(int…list){}以“…”三个字为关键字 可变参数:以params为关键字 34 对异常的描述: java中,异常分为两种,运行时异常(也就是uncheckExcep ...

  4. Oracle使用经验总结

    oracle数据库是一种大型数据库系统,一般应用于商业,政府部门,它的功能很强大,能够处理大批量的数据,在网络方面也用的非常多.Oracle数据库管理系统是一个以关系型和面向对象为中心管理数据的数据库 ...

  5. SessionHelper

    MXS&Vincene  ─╄OvЁ  &0000009 ─╄OvЁ  MXS&Vincene MXS&Vincene  ─╄OvЁ:今天很残酷,明天更残酷,后天很美好 ...

  6. 【翻译】了解ASP.NET MVC的HTML助手

    原文:Understanding HTML Helpers in ASP.NET MVC 作 者:Shailendra Chauhan works as Software Analyst at rep ...

  7. python的文件操作方法

    python中的文件对象:文件对象不仅可以用来访问普通的磁盘文件, 而且也可以访问任何其它类型抽象层面上的"文件". 一旦设置了合适的"钩子", 你就可以访问具 ...

  8. 推荐大家使用的CSS书写规范及顺序

    @设计达人网 写了这么久的CSS,但大部分前端er都没有按照良好的CSS书写规范来写CSS代码,这样会影响代码的阅读体验,这里我总结一个CSS书写规范.CSS书写顺序供大家参考,这些是参考了国外一些文 ...

  9. iOS开发之静态库的制作

    当你需要和别人分享代码,但又不想让别人看到你内部的实现时就需要制作静态库,通常用于第三方SDK 下面就分享一下制作静态库(.a)的过程: 1.打开Xcode,新建workspace 2.随便给work ...

  10. 【数据结构】之二叉树的java实现

    转自:http://blog.csdn.net/wuwenxiang91322/article/details/12231657 二叉树的定义: 二叉树是树形结构的一个重要类型.许多实际问题抽象出来的 ...