sqlalchemy 多对多关系
# -*- coding: utf-8 -*- from sqlalchemy import Column, String, create_engine,ForeignKey,Text,Integer,Table
from sqlalchemy.orm import sessionmaker,relationship
from sqlalchemy.ext.declarative import declarative_base # 创建对象的基类:
Base = declarative_base()
# 初始化数据库连接:
engine = create_engine('mysql+pymysql://root:root@localhost:3306/test')
# # 创建DBSession类型:
# DBSession = sessionmaker(bind=engine) # Table(
# 'mapping',
# Base.metadata,
# Column('id',Integer,autoincrement=True,primary_key=True),
# Column('recipe_id',Integer,ForeignKey('recipe.id')),
# Column('ingredient_id',Integer,ForeignKey('ingredient.id'))
# ) arctire_tag = Table(
"arctire_tag",
Base.metadata,
Column('arctire_id',Integer,ForeignKey('arctire.id'),primary_key=True),
Column("tag_id",Integer , ForeignKey("tag.id"),primary_key=True),
) class Arctire(Base):
__tablename__ = "arctire"
id = Column(Integer , primary_key=True , autoincrement=True)
name = Column(String(50) , nullable=False)
tags = relationship("Tag", backref="arctires", secondary='arctire_tag') def __repr__(self):
return "name:%s"%self.name class Tag(Base):
__tablename__ = 'tag'
id = Column(Integer , primary_key=True , autoincrement=True)
tag = Column(String(50) , nullable=False) def __repr__(self):
return "tag:%s"%self.tag Base.metadata.create_all(engine)
# -*- coding: utf-8 -*- from sqlalchemy import Column, String, create_engine,ForeignKey,Text,Integer,Table
from sqlalchemy.orm import sessionmaker,relationship
from sqlalchemy.ext.declarative import declarative_base # 创建对象的基类:
Base = declarative_base()
# 初始化数据库连接:
engine = create_engine('mysql+pymysql://root:root@localhost:3306/test')
# # 创建DBSession类型:
# DBSession = sessionmaker(bind=engine) # arctire_tag = Table(
# "arctire_tag",
# Base.metadata,
# Column('arctire_id',Integer,ForeignKey('arctire.id'),primary_key=True),
# Column("tag_id",Integer , ForeignKey("tag.id"),primary_key=True),
# ) class Arctire_tag(Base):
__tablename__='arctire_tag'
arctire_id=Column(Integer,ForeignKey('arctire.id'),primary_key=True)
tag_id=Column(Integer,ForeignKey('tag.id'),primary_key=True) class Arctire(Base):
__tablename__ = "arctire"
id = Column(Integer , primary_key=True , autoincrement=True)
name = Column(String(50) , nullable=False)
tags = relationship("Tag", backref="arctires", secondary='arctire_tag') def __repr__(self):
return "name:%s"%self.name class Tag(Base):
__tablename__ = 'tag'
id = Column(Integer , primary_key=True , autoincrement=True)
tag = Column(String(50) , nullable=False) def __repr__(self):
return "tag:%s"%self.tag Base.metadata.create_all(engine)
sqlalchemy 多对多关系的更多相关文章
- pythonのsqlalchemy多对多关系
现在来设计一个能描述“图书”与“作者”的关系的表结构,需求是 一本书可以有好几个作者一起出版 一个作者可以写好几本书 #!/usr/bin/env python from sqlalchemy imp ...
- 用SQLAlchemy创建一对多,多对多关系表
多对多关系表的创建: 如果建立好多对多关系后,我们就可以通过关系名进行循环查找,比如laowang = Teacher.query.filter(Teacher.name=='laowang').fi ...
- python3 + flask + sqlalchemy +orm(3):多对多关系
一篇文章有多个tag,一个tag也可以属于多篇文章,文章和tag存在多对多关系 config.py DEBUG = True #dialect+driver://root:1q2w3e4r5t@127 ...
- [ SQLAlchemy ] 自我引用型的多对多关系(Self-Referential Many-to-Many Relationship)理解
参考: https://www.jianshu.com/p/2c6c76f94b88 https://madmalls.com/blog/post/followers-and-followeds/ 实 ...
- SQLAlchemy_定义(一对一/一对多/多对多)关系
目录 Basic Relationship Patterns One To Many One To One Many To Many Basic Relationship Patterns 基本关系模 ...
- Flask 数据库多对多关系
数据库使用关系建立记录之间的联系.其中,一对多关系是最常用的关系类型,它把一个记录和一组相关的记录联系在一起.实现这种关系时,要在“多”这一侧加入一个外键,指向“一”这一侧联接的记录.大部分的其他关系 ...
- Entity Framework 6 Recipes 2nd Edition(10-9)译 -> 在多对多关系中为插入和删除使用存储过程
10-9. 在多对多关系中为插入和删除使用存储过程 问题 想要在一个无载荷的多对多关系中使用存储过程(存储过程只影响关系的连接表) 解决方案 假设有一个多对多关系的作者( Author)表和书籍( B ...
- 在thinkphp中,写的博文标签多对多关系的标签频率统计算法
常常看到别人的博客里面,或者网站里面有这样随机颜色,但字体大小与标签出现频率有关的标签云,于是自己就想写一个.至于颜色的随机显示,那就很简单了,这里就不列代码. 因为正在学thinkphp,所以数据查 ...
- 如何决解项目中hibernate中多对多关系中对象转换json死循环
先写一下原因吧!我是写的SSH项目,在项目中我遇到的问题是把分页对象(也就是pageBean对象)转化为json数据,下面为代码: public class PageBean <T>{// ...
随机推荐
- save
docker-compose-orderer.yaml # Copyright IBM Corp. All Rights Reserved. # # SPDX-License-Identifier: ...
- eclipse中安装maven,配置本地仓库和镜像
1.安装maven,配置MAVEN_HOME 首先:下载免安装版解压配置MAVEN_HOME(和配置JAVA_HOME一样) 然后按照下面的配置,主要第3步,指定settings.xml文件的位置(在 ...
- CMB面试
笔试: 1.登录验证userid password后台sql传入,有什么问题,预防措施? https://bbs.csdn.net/topics/120075716 2.cookie,session, ...
- 笔记本(ThinkPad)怎样关闭触摸板
随着笔记本电脑的普及,人们越来越习惯于出门使用笔记本,笔记本的便捷高效也大幅度地提升了人们的工作效率.但是如果居家使用笔记本电脑,也有其不便之处.比如在键盘上打字,很容易就会喷到触摸板,以至于光标一下 ...
- Ubuntu下orbbec mini 无法正常显示图像问题
最近用orbbec的深度摄像头采集RGBD图像,Windows下一切OK.但是Ubuntu下出现了不少问题.总结一下 1.将设备插到USB,先确定电脑能否正常识别设备 Ubuntu下是不需要安装驱动的 ...
- 1.Spring对JDBC整合支持
1.Spring对JDBC整合支持 Spring对DAO提供哪些支持 1)Spring对DAO异常提供统一处理 2)Spring对DAO编写提供支持的抽象类 3)提高编程效率,减少DAO编码量 Spr ...
- C# 基于Aspose.Cells的数据导出到Excel
using Aspose.Cells; void WriteToExcel(string filePath, List<object[]> datas, string sheetName ...
- verdi bin工具
verdi安装目录下会有很多小的工具: 1)波形类型转换类:fsdb2saif,fsdb2vcd, log2fsdb(只能增加某些周期性信号,从log txt直接产生fsdb波形,适合于siloti的 ...
- [11]Windows内核情景分析---设备驱动
设备驱动 设备栈:从上层到下层的顺序依次是:过滤设备.类设备.过滤设备.小端口设备[过.类.过滤.小端口] 驱动栈:因设备堆栈原因而建立起来的一种堆栈 老式驱动:指不提供AddDevice的驱动,又叫 ...
- tensorflow tensor 索引
问题: self.q_eval4next: (100,2) ix=[0,1,0,1---0,1](100,1) 我想取q_eval4next[:,idx] #use_doubleQ 切片用!!!! s ...