...

#!_*_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. yum配置Linux的Web服务器

    1.打开终端:输入su -root用于切换至root用户,目的是为了取得权限2.安装步骤如下(1)安装文件[root@localhost ~]# yum -y install httpd.i686[r ...

  2. 【Python】UI自动化-1

    一.安装selenium和环境配置 1 pip install selenium 2 三个驱动文件放到d:盘根目录 3 安装火狐版本33 4 安装插件:selenium ide\firebug\fir ...

  3. scp 脚本

    #!/bin/bash ty=$ local_dir=$ remote_ip=$ remote_dir=$ showUsage() { echo -e "\033[31m ty local_ ...

  4. Arcgis API本地化

    ①将API文件夹复制到该目录下C:\Program Files\ArcGIS\Server\framework\runtime\tomcat\webapps ②打开API文件夹中的init.js文件( ...

  5. day022 python (re模块和 模块)

    re模块是python提供的一套关于正则表达式的模块.核心功能有四个: 1.findall (查找所有,返回list) lst=re.findall("m",'salalwmaop ...

  6. EasyUI datagrid easyui datagrid +dialog 加载 可直接运行 七

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta ht ...

  7. (5)css样式导入

    样式的组成 1.选择器:将样式与页面中的某一个或某些标签建立联系,就要使用选择器,在head标签下写一个style标签,将需控制参数的标签名写在这个style标签下,设置属性即可通过css来控制htm ...

  8. C++数组排序

    #include<stdio.h> #include<stdlib.h> #include<windows.h> #define SIZE 5 //数组中元素的数量 ...

  9. 创建新用户,及用新用户名和密码登录--------------DCL

    创建用户基本语法:    creat user 用户名@"ip地址" identified by "密码" 登录数据库以后:用show databases; 显 ...

  10. 【java规则引擎】《Drools7.0.0.Final规则引擎教程》第4章 4.5RHS语法

    转载至:https://blog.csdn.net/wo541075754/article/details/76651073 RHS语法 使用说明 RHS是满足LHS条件之后进行后续处理部分的统称,该 ...