建表

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 外键相关推荐

  1. sqlalchemy外键和relationship查询

    前面的文章中讲解了外键的基础知识和操作,上一篇文章讲解了sqlalchemy的基本操作.前面两篇文章都是作为铺垫,为下面的文章打好基础.记得初一时第一次期中考试时考的不好,老爸安慰我说:"学 ...

  2. SQLAlchemy的使用---外键ForeignKey数据库创建与连接

    SQLAlchemy的使用---外键ForeignKey数据库创建与连接 # 一对多建表操作 from sqlalchemy.ext.declarative import declarative_ba ...

  3. Python sqlalchemy orm 多外键关联

     多外键关联 注:在两个表之间进行多外键链接 如图: 案例: # 创建两张表并添加外键主键 # 调用Column创建字段 加类型 from sqlalchemy import Integer, For ...

  4. Python sqlalchemy orm 多对多外键关联

    多对多外键关联 注:使用三张表进行对应关联 实现代码: # 创建3个表 配置外键关联 # 调用Column创建字段 加类型 from sqlalchemy import Table, Column, ...

  5. Flask之sqlalchemy过滤、外键和表单关系

    一.过滤条件 过滤是数据提取的一个很重要的功能,以下对一些常用的过滤条件进行解释,并且这些过滤条件都是只能通过filter方法实现的 equals query.filter(User.name == ...

  6. Flask-SQLAlchemy 中多表链接查询(不使用外键)

    SQLAlchemy 是一个功能强大的 ORM . Flask-SQLAlchemy 是一个 Flask 插件,它让我们在 Flask 框架中使用 SQLAlchemy 变得更容易. 本篇介绍我在使用 ...

  7. 【python】-- pymsql 外键

    pymsql 外键 本片是以上一篇pymsql操作MySQL的补充,主要演示pymysql的外键操作使用 一.一对一外键关联 1.示意图 2.一对一外键关联示例 2.1.创建表结构,插入数据 from ...

  8. Flask-sqlalchemy外键关系映射

    本文中,为了测试方便,所以使用sqlite,定义两张表User Article Article中author_id引用User表中的id,也就是author_id作为User表中id的外键 from ...

  9. django不修改数据库创外键_Django——model(建表,增删改查,外键,多对多)

    数据库操作 dbfirst:数据库优先 codefirst(ORM):代码优先,sqlalchemy和DJango都是用的这种 创建表 a.在app下的models.py中,创建类 from djan ...

最新文章

  1. (转载)配置apue.h
  2. js中const,var,let区别
  3. .net 读word中文字方法
  4. 为什么建议使用Linux?从“白嫖”到精通,只需要这几步
  5. 使用BeanUitls提高对象拷贝效率
  6. lwip路由实现_TCP超时与重传《LwIP协议栈源码详解——TCP/IP协议的实现》
  7. Centos7+ 修改hostname主机名命令
  8. python接口在哪里_在Python中实现接口?
  9. python函数 range()和arange()
  10. 我是如何做测试项目管理的
  11. 爆破,抓不了图片验证码。
  12. 如何写出吸引人的广告文案(一)
  13. Fite-C02-1班成员学习进度记录
  14. 从数据结构的角度来看Mysql为什么使用B+树
  15. Linux是什么 ?
  16. 计算机英语二考研用书,考研英语二怎么准备?记过来人详细经验
  17. 世界杯:用Python分析热门夺冠球队
  18. 海思WiFi IOT 芯片方案介绍!
  19. 元器件 失效分析 过程介绍
  20. P5727 【深基5.例3】冰雹猜想

热门文章

  1. 每天一道LeetCode-----计算二叉树的最大深度及最小深度,判断二叉树是否是高度平衡二叉树
  2. 每天一道LeetCode-----对序列进行排序,要求nums[0] nums[1] nums[2] nums[3] ....
  3. LVS(15)——tun技术
  4. mobileNet v2网络详解
  5. 计算机应用基础中专教材pdf,中等职业教育通用教材-计算机应用基础.pdf
  6. Metro App中使用Timer
  7. Leetcode题库 5.最长回文子串(C++实现)
  8. 概率论-2.7 分布的其他特征函数
  9. 力扣——回文数(Java)
  10. 创维oled工厂模式abd_创维OLED游戏电视创维专业电竞显示器 为SN战队保驾护航