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 ...
随机推荐
- hibernate中flush()、refresh()、clear()缓存操作
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ flush():使数据库中的对象和session缓存中的对象的状态 ...
- Codeforces Round 589 (Div. 2) 题解
Is that a kind of fetishism? No, he is objectively a god. 见识了一把 Mcdic 究竟出题有多神. (虽然感觉还是吹过头了) 开了场 Virt ...
- 分布式共识算法 (四) BTF算法(区块链使用)
系列目录 分布式共识算法 (一) 背景 分布式共识算法 (二) Paxos算法 分布式共识算法 (三) Raft算法 分布式共识算法 (四) BTF算法 一.引子 前面介绍的算法,无论是 Paxos ...
- centos 启动一个tcp服务程序
需要先yum安装: yum install nc 启动服务: nc -l 80
- paramiko 远程执行多个命令
转发博客如下 https://blog.csdn.net/c_base_jin/article/details/86561445
- 【Linux命令】at、crontab定时任务
crontab定时任务(周期性) 一.简介 通过crontab命令可以在固定的间隔执行系统指令或shell脚本 二.crontab配置文件: Linux下的任务调度分为两类:系统任务调度和用户任务调度 ...
- Tensorflow faster rcnn系列一
注意:本文主要是学习用,发现了一个在faster rcnn训练流程写的比较详细的博客. 大部分内容来自以下博客连接:https://blog.csdn.net/weixin_37203756/arti ...
- linux 修改文件的时间属性
二.修改文件时间 创建文件我们可以通过touch来创建.同样,我们也可以使用touch来修改文件时间.touch的相关参数如下: -a : 仅修改access time. -c : 仅修改时间,而不建 ...
- skeleton在心意web上的实践
通过手动编写skeleton,在fetch数据时显示skeleton loading,数据拉取成功隐藏skeleton 先看下效果图 在component下创建页面对应的skeleton,然后通过在i ...
- centos6 cgroup及cgred简介和简单使用
一.cgroup简介 Linux CGroup全称Linux Control Group, 是Linux内核的一个功能,用来限制,控制与分离一个进程组群的资源(如CPU.内存.磁盘输入输出等).这个项 ...