...

#!_*_coding:utf-8_*_
#__author__:"Alex huang"
import sqlalchemy
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column,Integer,String,ForeignKey
from sqlalchemy.orm import relationship engine = create_engine("mysql+pymysql://hrg:123@192.168.80.100:3306/test",encoding='utf8')
Base = declarative_base() #生成orm基类 class students(Base):
__tablename__ = 'students' #表名
id = Column(Integer, primary_key=True)
name = Column(String(32))
password = Column(String(64))
def __repr__(self):
return "id:%s name:%s" %(self.id,self.name) class studyrecord(Base):
__tablename__ = 'studyrecord' #表名
id = Column(Integer, primary_key=True)
day = Column(String(32))
status = Column(String(32))
stu_id = Column(Integer,ForeignKey("students.id")) #创建外键
students = relationship("students",backref="my_studyrecord") #创建关系,是在内存中映射的,没有实际创建表,
#backref回调引用,students表可以通过my_studyrecord来引用studyrecord的数据
def __repr__(self):
return "%s day:%s status:%s" %(self.students.name,self.day,self.status) Base.metadata.create_all(engine) #创建表
Session_class = sqlalchemy.orm.session.sessionmaker(bind=engine) # 创建与数据库的会话session class ,注意,这里返回给session的是个class,不是实例
Session = Session_class() # 生成session实例
#
#插入 第一次运行先插入数据
# s1 = students(name='hrg',password='111')
# s2 = students(name='keke',password='122')
# s3 = students(name='tom',password='333')
# r1 = studyrecord(day='1',status='yes',stu_id='1')
# r2 = studyrecord(day='1',status='yes',stu_id='2')
# r3= studyrecord(day='2',status='no',stu_id='1')
# r4 = studyrecord(day='3',status='yes',stu_id='1')
# r5 = studyrecord(day='3',status='yes',stu_id='2')
#
# Session.add_all([s1,s2,s3,r1,r2,r3,r4,r5])
# Session.commit() data = Session.query(students).filter(students.name=='hrg').first() #先students表里名称为hrg的第一条记录
print(data.my_studyrecord) #打印hrg在studyrecord中的相关记录

  ...

sqlalchemy操作----外键关联,relationship的更多相关文章

  1. Python sqlalchemy orm 外键关联

    创建外键关联 并通过relationship 互相调用 如图: 实现代码: import sqlalchemy # 调用链接数据库 from sqlalchemy import create_engi ...

  2. sqlalchemy多外键关联

    一.前言 如果有张表A的多个字段关联另一张表B的一个字段,就如同一个客户表的账单地址和发货地址,同时关联地址表中的id字段. 二.事例 # -*- coding: UTF-8 -*- from sql ...

  3. sqlalchemy的外键与relationship查询

    https://www.cnblogs.com/goldsunshine/p/9269880.html 讲的很详细. http://www.bjhee.com/flask-ext4.html 思诚之道 ...

  4. sqlalchemy外键和relationship查询

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

  5. Python sqlalchemy orm 多外键关联

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

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

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

  7. pythonのsqlalchemy外键关联查询

    #!/usr/bin/env python import sqlalchemy from sqlalchemy import create_engine from sqlalchemy.ext.dec ...

  8. sqlalchemy外键关联

    一.创建两张表,并关联外键 导入ForenginKey模块 # -*- coding: UTF-8 -*- from sqlalchemy import create_engine from sqla ...

  9. Entity FrameWork对有外键关联的数据表的添加操作

    前天做了一个MVC Entity FrameWork项目,遇到有外键关联的数据编辑问题.当你编辑的时候,按照正常的逻辑,把每个字段的数据都对号入座了,然后点击保存按钮,本以为会顺理成章的编辑数据,但是 ...

随机推荐

  1. 1.Windows下使用VisualSVN Server搭建SVN服务器

    使用 VisualSVN Server来实现主要的 SVN功能则要比使用原始的 SVN和Apache相配合来实现源代码的 SVN管理简单的多,下面就看看详细的说明. VisualSVN Server的 ...

  2. The group WHATEVER is formed today

    Duang Duang!我们团队今天正式成立啦 团队名称:WHATEVER 团队成员如下: 个人介绍:天明宝,性别:女,爱好:偷懒 心有鸿鹄大志,却只有麻雀之行.一直在与自己做斗争,是个矛盾的综合体. ...

  3. mysql 批量kill

    select concat('kill ',id,';') t  from information_schema.processlist  order by t

  4. dubbo AdaptiveExtension

    AdaptiveExtension 自适应Extension,作者其实在使用Extension方和Extension之间插入AdaptiveExtension用来自适应,也可以说是适配. 所以,我们发 ...

  5. flask数据库的迁移

    需要的插件:flask-migrate  在每次修改模型之后,将修改的东西映射到数据库中. 使用flask-migrate 必须借助flask_scripts,这个包的所有MigrateCommand ...

  6. HPU第四次积分赛-L:A Winged Steed(完全背包)

    A Winged Steed 描述 有n种千里马,每一种都有若干匹,第i种马的颜值ai​,价格di​.现有m个牧马人要去挑选千里马,每一位牧马人对马的颜值都有要求:{所选马的颜值总和} ⩾Ai​.现在 ...

  7. 2017.4.7 Sprng MVC工作流程描述图

    图一: 图二: Spring工作流程描述         1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获:       2. Dispa ...

  8. BOM-JavaScript浏览器的对象模型

    BOM-JavaScript是运行在浏览器中的,所以提供了一系列对象用于和浏览器窗口进行交互,这些对象主要包括window.document.location.navigator和screen等.通常 ...

  9. hdu2594 Simpsons’ Hidden Talents LCS--扩展KMP

    Homer: Marge, I just figured out a way to discover some of the talents we weren’t aware we had.Marge ...

  10. js---通配符选择器

    原味转自:http://blog.sina.com.cn/s/blog_6e001be701017kaz.html 1.选择器 (1)通配符: $("input[id^='code']&qu ...