sqlalchemy 多对多关系
2024-09-30 11:27:14
# -*- 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)
最新文章
- 3D游戏中的画质与效率适配
- 如何通过ArcMap Add-in机制实现十字叉线地理配准工具
- MyEclipse编码设置
- centos crontab 定时任务详解
- 学习DSP(三)安装C2833x/C2823x C/C++ 头文件和外设示例-压缩包
- poj1201 Intervals【差分约束+SPFA】
- OpenCMS模板的导出和OpenCMS网站的导出
- Guns(开源后台管理系统框架)实战(一)——开发环境搭建
- with原理__enter__、__exit__
- EFCore使用JSON_VALUE查询json对象的值
- [python 练习] 计算个税
- Mysql逆向工程效率神器之使用IDE自动生成Java实体类
- 前端JavaScript获取时间戳
- MySQL 基础 事务
- js固定底部菜单
- mybatis知识点(已掌握)
- vim实践学习
- 用 webpack 构建 node 后端代码,使其支持 js 新特性并实现热重载
- Websphere停止服务不用输入账号密码
- “全栈2019”Java异常第四章:catch代码块作用域详解