sqlalchemy 外键
建表
from sqlalchemy.ext.declarative import declarative_base Base = declarative_base()from sqlalchemy import Column,INT,VARCHAR,ForeignKey from sqlalchemy.orm import relationshipclass student(Base):__tablename__='student'id=Column(INT,primary_key=True)name=Column(VARCHAR(64))school_id=Column(INT,ForeignKey('school.id'))#stu2sch=relationship('school',backref='sch2stu') #本条在采用relationship插入数据是写入class school(Base):__tablename__='school'id=Column(INT,primary_key=True)name = Column(VARCHAR(64))from sqlalchemy import create_engineengine=create_engine('mysql+pymysql://root:941015@192.168.50.67:3306/sqlarchm?charset=utf8')Base.metadata.create_all(engine) # Base.metadata.drop_all(engine)
插入数据:
from sqlalchemy.orm import sessionmaker from create_table_foreignkey import engine,school,studentSession=sessionmaker(engine) db_session=Session()#笨方法 # sch_obj=school(name='dongnanya') # db_session.add(sch_obj) # db_session.commit() # # sch_obj=db_session.query(school).filter(school.name=='dongnanya').first() # student_obj=student(name='chaochao',school_id=sch_obj.id) # db_session.add(student_obj) # db_session.commit() # db_session.close()#利用relationship -正向# stu_obj = student(name='LUCIFER',stu2sch=school(name='dongbeiya')) # # db_session.add(stu_obj) # db_session.commit() # db_session.close()#利用relationship -反向 sch_obj=school(name='xxy') sch_obj.sch2stu=[student(name='beibei'),student(name='huahua')] db_session.add(sch_obj)db_session.commit()
查:
from sqlalchemy.orm import sessionmaker from create_table_foreignkey import engine,student,schoolSession=sessionmaker(engine) db_session=Session()#查询 笨 # sch_obj=db_session.query(school).filter(school.name=='dongbeiya').first() # # stu_obj=db_session.query(student).filter(student.school_id==sch_obj.id).first() # # print(stu_obj.name,sch_obj.name)#relationship 正向# stu_obj=db_session.query(student).filter(student.name=='LUCIFER').first() # print(stu_obj.stu2sch.name,stu_obj.name)#relationship 反向 sch_obj=db_session.query(school).all() for row in sch_obj:for stu in row.sch2stu:print(row.name,stu.name)
删除和更新 没有简单操作
转载于:https://www.cnblogs.com/Lucifer77/p/10776438.html
sqlalchemy 外键相关推荐
- sqlalchemy外键和relationship查询
前面的文章中讲解了外键的基础知识和操作,上一篇文章讲解了sqlalchemy的基本操作.前面两篇文章都是作为铺垫,为下面的文章打好基础.记得初一时第一次期中考试时考的不好,老爸安慰我说:"学 ...
- SQLAlchemy的使用---外键ForeignKey数据库创建与连接
SQLAlchemy的使用---外键ForeignKey数据库创建与连接 # 一对多建表操作 from sqlalchemy.ext.declarative import declarative_ba ...
- Python sqlalchemy orm 多外键关联
多外键关联 注:在两个表之间进行多外键链接 如图: 案例: # 创建两张表并添加外键主键 # 调用Column创建字段 加类型 from sqlalchemy import Integer, For ...
- Python sqlalchemy orm 多对多外键关联
多对多外键关联 注:使用三张表进行对应关联 实现代码: # 创建3个表 配置外键关联 # 调用Column创建字段 加类型 from sqlalchemy import Table, Column, ...
- Flask之sqlalchemy过滤、外键和表单关系
一.过滤条件 过滤是数据提取的一个很重要的功能,以下对一些常用的过滤条件进行解释,并且这些过滤条件都是只能通过filter方法实现的 equals query.filter(User.name == ...
- Flask-SQLAlchemy 中多表链接查询(不使用外键)
SQLAlchemy 是一个功能强大的 ORM . Flask-SQLAlchemy 是一个 Flask 插件,它让我们在 Flask 框架中使用 SQLAlchemy 变得更容易. 本篇介绍我在使用 ...
- 【python】-- pymsql 外键
pymsql 外键 本片是以上一篇pymsql操作MySQL的补充,主要演示pymysql的外键操作使用 一.一对一外键关联 1.示意图 2.一对一外键关联示例 2.1.创建表结构,插入数据 from ...
- Flask-sqlalchemy外键关系映射
本文中,为了测试方便,所以使用sqlite,定义两张表User Article Article中author_id引用User表中的id,也就是author_id作为User表中id的外键 from ...
- django不修改数据库创外键_Django——model(建表,增删改查,外键,多对多)
数据库操作 dbfirst:数据库优先 codefirst(ORM):代码优先,sqlalchemy和DJango都是用的这种 创建表 a.在app下的models.py中,创建类 from djan ...
最新文章
- (转载)配置apue.h
- js中const,var,let区别
- .net 读word中文字方法
- 为什么建议使用Linux?从“白嫖”到精通,只需要这几步
- 使用BeanUitls提高对象拷贝效率
- lwip路由实现_TCP超时与重传《LwIP协议栈源码详解——TCP/IP协议的实现》
- Centos7+ 修改hostname主机名命令
- python接口在哪里_在Python中实现接口?
- python函数 range()和arange()
- 我是如何做测试项目管理的
- 爆破,抓不了图片验证码。
- 如何写出吸引人的广告文案(一)
- Fite-C02-1班成员学习进度记录
- 从数据结构的角度来看Mysql为什么使用B+树
- Linux是什么 ?
- 计算机英语二考研用书,考研英语二怎么准备?记过来人详细经验
- 世界杯:用Python分析热门夺冠球队
- 海思WiFi IOT 芯片方案介绍!
- 元器件 失效分析 过程介绍
- P5727 【深基5.例3】冰雹猜想
热门文章
- 每天一道LeetCode-----计算二叉树的最大深度及最小深度,判断二叉树是否是高度平衡二叉树
- 每天一道LeetCode-----对序列进行排序,要求nums[0] nums[1] nums[2] nums[3] ....
- LVS(15)——tun技术
- mobileNet v2网络详解
- 计算机应用基础中专教材pdf,中等职业教育通用教材-计算机应用基础.pdf
- Metro App中使用Timer
- Leetcode题库 5.最长回文子串(C++实现)
- 概率论-2.7 分布的其他特征函数
- 力扣——回文数(Java)
- 创维oled工厂模式abd_创维OLED游戏电视创维专业电竞显示器 为SN战队保驾护航