SQLAlchemy多对多
创建多对多表

from sqlalchemy.ext.declarative import declarative_base
Base=declarative_base() from sqlalchemy import Column,String,Integer,ForeignKey
from sqlalchemy.orm import relationship class Girl(Base):
__tablename__="girl"
id = Column(Integer,primary_key=True)
name=Column(String(32))
#secondary="Hotel" 表示两个表关联Hotel
girl2boy = relationship("Boy",secondary="hotel",backref="boy2girl" ) class Boy(Base):
__tablename__ = "boy"
id = Column(Integer,primary_key=True)
name = Column(String(32)) class Hotel(Base):
__tablename__ = "hotel"
id=Column(Integer,primary_key=True)
girl_id =Column(Integer,ForeignKey("girl.id"))
boy_id=Column(Integer,ForeignKey("boy.id")) from sqlalchemy import create_engine
engine=create_engine("mysql+pymysql://root:@127.0.0.1:3306/day127?charset=utf8") Base.metadata.create_all(engine)

添加多对多数据

from sqlalchemy.orm import sessionmaker
from SQL.M_M import engine,Boy Session=sessionmaker(engine)
db_session=Session()
#反向添加
# boy_obj=Boy(name="kobe")
# boy_obj.boy2girl =[Girl(name="dva"),Girl(name="xiaoemi")]
# db_session.add(boy_obj)
# db_session.commit()
# db_session.close()
#正向添加
# girl_obj=Girl(name="anna",girl2boy=[Boy(name="curry"),Boy(name="green")])
# db_session.add(girl_obj)
# db_session.commit()
# db_session.close()
#正向查询
# g_list=db_session.query(Girl).all()
# for row in g_list:
# for item in row.girl2boy:
# print(row.id,row.name,item.name) #反向查询
b_list=db_session.query(Boy).all()
for row in b_list:
for item in row.boy2girl:
print(row.id,row.name,item.name)
SQLAlchemy多对多的更多相关文章
- Python SQLAlchemy多对多外键关联时表结构
# 创建多对多表结构 from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.engine import cre ...
- sqlalchemy多对多查询
# coding:utf-8 from sqlalchemy import create_engine, Column, String, Integer, ForeignKey, Table from ...
- SQLAlchemy 多对多
创建多对多表 from sqlalchemy.ext.declarative import declarative_base Base=declarative_base() from sqlalche ...
- pythonのsqlalchemy多对多关系
现在来设计一个能描述“图书”与“作者”的关系的表结构,需求是 一本书可以有好几个作者一起出版 一个作者可以写好几本书 #!/usr/bin/env python from sqlalchemy imp ...
- sqlalchemy 多对多关系
# -*- coding: utf-8 -*- from sqlalchemy import Column, String, create_engine,ForeignKey,Text,Integer ...
- 04:sqlalchemy操作数据库
目录: 1.1 ORM介绍(作用:不用原生SQL语句对数据库操作) 1.2 安装sqlalchemy并创建表 1.3 使用sqlalchemy对表基本操作 1.4 一对多外键关联 1.5 sqlalc ...
- 04:sqlalchemy操作数据库 不错
目录: 1.1 ORM介绍(作用:不用原生SQL语句对数据库操作) 1.2 安装sqlalchemy并创建表 1.3 使用sqlalchemy对表基本操作 1.4 一对多外键关联 1.5 sqlalc ...
- python-MYSQL(包括ORM)交互
1.首先,我们必须得连上我们的MYSQL数据库.个人遇到连不上MYSQL数据的问题主要有:数据库的权限问题.数据库表权限的问题 同时获取数据库中的数据等. //==================== ...
- 应有dataGridView控件
using System.Data.SqlClient; namespace UseDataGridView { public partial class Form1 : Form { public ...
随机推荐
- ORA-01126: 数据库必须已装载到此实例并且不在任何实例中打开
原因:修改归档模式的操作只能在 mount 状态下进行,不能处于 open 状态. SQL> alter database archivelog;alter database archivelo ...
- 自定义注解实现简单的orm映射框架
package com.mj; import javax.xml.bind.Element; import java.lang.annotation.*; import java.lang.refle ...
- 分页Model
<?php namespace Admin\Model; use Think\Model; class PageModel extends Model{ /* *此函数分页函数.传入表名和当前页 ...
- jQuery中$(this)与this的区别
经常在写jQuery的时候分不清this 和 $(this),为了方便起见尽量不用this,只用$(this).但是今天在别人的代码的基础上改一些东西,又遇到了这个this,不得不把它弄明白. $(t ...
- GitLabCICD
CI/CD是什么 CI全名Continuous Integration,啥意思?就是我们经常听到的持续集成概念.当开发每天会提交多次代码到主干上,会做一些重复性的动作时,就可以用持续集成环境来操作.有 ...
- Spark学习(1) Spark入门
什么事spark Spark是一种快速.通用.可扩展的大数据计算引擎.项目是用Scala进行编写,基于内存计算的 包括交互式查询和流处理 spark内置项目 Spark SQL:是 Spark 用来操 ...
- 第一个python小脚本
第一个python小实验 前言 作为一个工作1年的linux运维搬砖师来说,发现没点开发能力真的是不好混啊.于是下定决心学习python! 直接上刚写的语句(大神莫鄙视) 通过控制台输入一个账号密码, ...
- java知识精要(二)
java知识精要(一) 集合 Iterable v.s. Iterator 两者都是接口,在Collection继承的是Iterable. Iterable表达了集合具备迭代访问的能力,而Iterat ...
- golang(一)
开篇先来个Go语言的吉祥物-金花鼠Gordon. golang是谷歌2009年发布的开源编程语言,截止目前go的release版本已经到了1.10.go语言的开发人员都是计算机界大神一般的存在: Th ...
- Go语言【数据结构】数组
数组 简介 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形.字符串或者自定义类型.数组形式 numbers[0], numbers[1] ..., nu ...