sqlalchemy_外键连接表
import sqlalchemy
from sqlalchemy import create_engine #连接数据库
from sqlalchemy.ext.declarative import declarative_base #orm基类
from sqlalchemy import Column,Integer,String,DATE,ForeignKey#Column列
from sqlalchemy.orm import sessionmaker,relationship
engine=create_engine("mysql+pymysql://root:123456@192.168.0.6/wupeiqi",
encoding='utf-8',echo=False)#连接数据库 echo=TRUE输出执行过程
base=declarative_base()# 生成基类
class Student(base):
__tablename__="student"
id=Column(Integer,primary_key=True)
name=Column(String(32),nullable=False)
register_date=Column(DATE,nullable=False)
def __repr__(self):
return "<%s name:%s>"%(self.id,self.name)
class StudyRecord(base):
__tablename__="study_record"
id = Column(Integer, primary_key=True)
day=Column(Integer,nullable=False)
status=Column(String(32),nullable=False)
stu_id=Column(Integer,ForeignKey('student.id')) #外键关联到student的id
#StudyRecord通过student字段查询Student表里所有数据 在内存里建立relationship关系
student=relationship("Student",backref="my_study_record")#允许你可以在student表里通过my_study_record字段反查Studyrecord所有数据
def __repr__(self):
return "<%s day:%s status:%s>"%(self.student.name,self.day,self.status)
base.metadata.create_all(engine)#创建表
#连接mysql
Session_class = sessionmaker(bind=engine) # 创建与数据库的连接session class ,注意,这里返回给session的是个class,不是实例
session = Session_class() # 生成session实例 session会话 类似cursor
'''
#插入数据
s1=Student(name="kobe",register_date="2017-05-16")
s2=Student(name="jack",register_date="2017-04-16")
s3=Student(name="duncon",register_date="2017-06-16")
s4=Student(name="Allen",register_date="2017-07-16")
record_1=StudyRecord(day=1,status="YES",stu_id=1)
record_2=StudyRecord(day=2,status="NO",stu_id=1)
record_3=StudyRecord(day=3,status="YES",stu_id=1)
record_4=StudyRecord(day=1,status="YES",stu_id=2)
session.add_all([s1,s2,s3,s4,record_1,record_2,record_3,record_4])
session.commit()
'''
#外键查询数据
stu_obj=session.query(Student).filter(Student.name=="kobe").first()
print(stu_obj.my_study_record)
转载于:https://blog.51cto.com/13707996/2361519
sqlalchemy_外键连接表相关推荐
- MySQL 语句外键 连接
外键 定义: 外键是指引用另一个表中的一列或多列,被引用的列具有主键约束或唯一约束. 目的: 外键用于建立和加强两个表数据之间的连接. 概念:1. 主表--被引用的表:2.从表 --引用外键的表 . ...
- 3,外键之表关联关系,修改表,复制表
今日内容: 一:外键 一对多: 多对多: 一对一: 二:了解知识点 复制表 修改表相关操作 前戏: 所有的信息都在一张表中所带来的的问题 ...
- mysql 删除表数据_主外键关联表的数据删除策略
说个题外话,我从来没想过会被拼多多这款软件所魔怔,他的这种社交营销的能力,实在是太强了,在怂恿之下,开始给儿子拼个这个, 各位有空帮砍下,https://w.url.cn/s/AzlPAB9,或者扫下 ...
- Flask之sqlalchemy过滤、外键和表单关系
一.过滤条件 过滤是数据提取的一个很重要的功能,以下对一些常用的过滤条件进行解释,并且这些过滤条件都是只能通过filter方法实现的 equals query.filter(User.name == ...
- mysql创建外键的表_Mysql表创建外键报错解决方案
Mysql表创建外键报错解决方案,字段,名字,数据库,更新时间,歧义 Mysql表创建外键报错解决方案 易采站长站,站长之家为您整理了Mysql表创建外键报错解决方案的相关内容. 数据库表A: CRE ...
- 5月9日 python学习总结 外键、表之间的关联关系、修改表、清空表内容、复制表...
一.外键foreign key 外键约束: 1.必须先创建被关联表才能创建关联表 2.插入记录时,必须先插入被关联表的记录,才能插入关联表(要用到被关联表)的记录 3.若不设置同步更新和同步删除 ...
- 一个成绩表 该关系模式的外键_MySQL表之间的关系
Ⅰ 一对多 员工表与部门表为例>>>一个部门有多名员工 先站在员工表思考一个员工能否对应多个部门(一条员工数据能否对应多条部门数据)不能!!!(不能直接得出结论 一定要两张表都考虑完 ...
- mysql多个外键删除设置_Mysql在删除集上使用多个外键创建表
我试图创建一个具有删除/更新约束的多个外键的数据库,但我得到一个错误代码1005与以下sql脚本: CREATE TABLE Worker ( WorkerID smallint auto_incre ...
- Oracle中给表添加主键 外键,给表中添加主键、外键
1.创建表的同时创建主键约束 (1)无命名 create table student ( studentid int primary key not null, studentname varchar ...
最新文章
- matlab-矩阵应用
- 【网络安全】一次实战中对tp5网站getshell方式的测试
- java redis集群连接池_(08)redis之使用java客户端、spring连接redis、redis集群示例...
- [css] CSS content属性特殊字符有哪些?
- 【牛客 - 315B】 勇气获得机(二叉树性质,思维,知识点,tricks)
- Oracle系列:Oracle RAC集群体系结构
- FIREDAC连接SQLITE乱码的解决
- HTML5+学习笔记2-------边看代码边研究貌似还是有点问题...还在研究中api中
- 程序员硬核吃瓜宋慧乔宋仲基离婚、范冰冰李晨分手!
- 2016年1月中国域名商解析量14强:排名变动大
- SoapUI、Jmeter、Postman三种接口测试工具的比较分析
- 五角星是不是旋转对称图形_新部编二年级下册数学第10单元总复习教案,克和千克、图形的运动...
- 杭电1181--变形课(Dfs)
- 三个数比大小c语言_C语言必学知识点【结构体】用法很多,坑也很多!
- 删除或复制文件提示:文件名无效或太长/目标路径太长/找不到该项目
- Tilera推用于云计算的多核处理器Meshed
- python:series详解和数据获取
- 全链路压测那点事(一)
- java 成绩_java输出各种学生成绩
- springboot整合redisson实现分布式锁
热门文章
- LAMP配置虚拟目录
- linux笔记:linux帮助命令,man,help,whatis,apropos
- 探索 OpenStack 之(7):Neutron 深入探索之 Open vSwitch (OVS) + GRE 之 Neutron节点篇
- Android -- 自动挂断电话
- 运用枚举展示静态数据
- Delphi 与 DirectX 之 DelphiX(93): TDIB.DrawDarken();
- 单机版kubernetes1.13安装
- 数据结构与算法基础-02
- px、pt、em、rem 的区别
- Spring中的Bean配置