# -*- 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 多对多关系的更多相关文章

  1. pythonのsqlalchemy多对多关系

    现在来设计一个能描述“图书”与“作者”的关系的表结构,需求是 一本书可以有好几个作者一起出版 一个作者可以写好几本书 #!/usr/bin/env python from sqlalchemy imp ...

  2. 用SQLAlchemy创建一对多,多对多关系表

    多对多关系表的创建: 如果建立好多对多关系后,我们就可以通过关系名进行循环查找,比如laowang = Teacher.query.filter(Teacher.name=='laowang').fi ...

  3. python3 + flask + sqlalchemy +orm(3):多对多关系

    一篇文章有多个tag,一个tag也可以属于多篇文章,文章和tag存在多对多关系 config.py DEBUG = True #dialect+driver://root:1q2w3e4r5t@127 ...

  4. [ SQLAlchemy ] 自我引用型的多对多关系(Self-Referential Many-to-Many Relationship)理解

    参考: https://www.jianshu.com/p/2c6c76f94b88 https://madmalls.com/blog/post/followers-and-followeds/ 实 ...

  5. SQLAlchemy_定义(一对一/一对多/多对多)关系

    目录 Basic Relationship Patterns One To Many One To One Many To Many Basic Relationship Patterns 基本关系模 ...

  6. Flask 数据库多对多关系

    数据库使用关系建立记录之间的联系.其中,一对多关系是最常用的关系类型,它把一个记录和一组相关的记录联系在一起.实现这种关系时,要在“多”这一侧加入一个外键,指向“一”这一侧联接的记录.大部分的其他关系 ...

  7. Entity Framework 6 Recipes 2nd Edition(10-9)译 -> 在多对多关系中为插入和删除使用存储过程

    10-9. 在多对多关系中为插入和删除使用存储过程 问题 想要在一个无载荷的多对多关系中使用存储过程(存储过程只影响关系的连接表) 解决方案 假设有一个多对多关系的作者( Author)表和书籍( B ...

  8. 在thinkphp中,写的博文标签多对多关系的标签频率统计算法

    常常看到别人的博客里面,或者网站里面有这样随机颜色,但字体大小与标签出现频率有关的标签云,于是自己就想写一个.至于颜色的随机显示,那就很简单了,这里就不列代码. 因为正在学thinkphp,所以数据查 ...

  9. 如何决解项目中hibernate中多对多关系中对象转换json死循环

    先写一下原因吧!我是写的SSH项目,在项目中我遇到的问题是把分页对象(也就是pageBean对象)转化为json数据,下面为代码: public class PageBean <T>{// ...

随机推荐

  1. js中实现IE的打印预览

    HTML中添加:<object id="WebBrowser" classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 widt ...

  2. Linux更改IP地址

    1.进入到root用户 2.执行命令:ifconfig 查看本机的名称 3.执行命令:ifconfig eth0 192.168.25.128 netmask 255.255.255.0  //eth ...

  3. python 调用阿里云云解析api添加记录

    首先安装阿里云SDK pip install aliyun-python-sdk-core pip install aliyun-python-sdk-alidns 可以配合jenkins传递参数 # ...

  4. js动态规划---背包问题

    //每种物品仅有一件,可以选择放或不放 //即f[i][w]表示前i件物品恰放入一个容量为w的背包可以获得的最大价值. //则其状态转移方程便是:f[i][w]=max{f[i-1][w],f[i-1 ...

  5. cocos2d-x C++ (Android)集成第三方微信分享

    ShareSDK Android for cocos2d-x 此文档为ShareSDK Android for cocos3.x的版本,如您集成的是2.X的版本文档请到这里:cocos2.x集成文档 ...

  6. java-Unicode与中文的转换

    package utils; import org.apache.commons.lang3.StringUtils; public class UnicodeUtils { public stati ...

  7. Xception网络结构理解

    Xception网络是由inception结构加上depthwise separable convlution,再加上残差网络结构改进而来/ 常规卷积是直接通过一个卷积核把空间信息和通道信息直接提取出 ...

  8. 新节点在线加入PXC

    环境 192.168.139.151 新增节点 192.168.139.148-150 集群节点 192.168.139.151 已经安装好PXC软件 计划: 选用192.168.139.150 节点 ...

  9. MongoDB 在 windows 下的安装与服务配置

    本文转载地址: https://blog.csdn.net/Dorma_Bin/article/details/80851230 本地安装及网页测试 在官网下载最新的安装文件 下载地址 : https ...

  10. 关于调用数据库函数executeUpdate抛出异常

    2018.06.11写一个web程序的时候发现了一个问题,解决了好几天都没解决,并且也找不到问题所在.偶然百度找到了根源所在,希望可以帮到大家. 1 在调用这个函数的时候一直抛异常.刚开始我还以为是代 ...