Mysql-Sqlalchemy-多表操作
import sqlalchemy from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
'''Column导入'''
from sqlalchemy import Column, String, Integer, DATE,ForeignKey
'''导入游标'''
from sqlalchemy.orm import sessionmaker,relationship engine =create_engine("mysql+pymysql://xiaopang:521521@192.168.50.129/oldboydb",
encoding='utf-8') #可以加echo=True显示数据
'''生成orm基类'''
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 = relationship("Student", backref="my_study_record") def __repr__(self):
return "< %s day:%s status:%s>" % (self.student.name,self.day,self.status)
Base.metadata.create_all(engine) # 创建表结构
Session_class=sessionmaker(bind=engine)
Session=Session_class() # 生成session实例相当于cursor游标 '''多表插入数据'''
# s1 =Student(name="goupang",register_date="2018-06-01")
# s2 =Student(name="siwanyi",register_date="2018-06-02")
# s3 =Student(name="yaosini",register_date="2018-06-03")
# s4 =Student(name="xiaopang",register_date="2018-06-04") # study_obj1=StudyRecord(day=1,status="Yes",stu_id=1)
# study_obj2=StudyRecord(day=2,status="No",stu_id=1)
# study_obj3=StudyRecord(day=3,status="Yes",stu_id=1)
# study_obj4=StudyRecord(day=1,status="Yes",stu_id=2) #Session.add_all([study_obj1,study_obj2,study_obj3,study_obj4]) '''多表查询'''
stu_obj=Session.query(Student).filter().first()
#调用my_study_record就是StudyRecord里面的所有属性(所有字段的数据)
print(stu_obj.my_study_record)
Session.commit()#提交
思路及过程:两个表互相取数据,通过ralationship关系连接,写到内存中

Mysql-Sqlalchemy-多表操作的更多相关文章
- SQLAlchemy多表操作
目录 SQLAlchemy多表操作 一对多 数据准备 具体操作 多对多 数据准备 操作 其它 SQLAlchemy多表操作 一对多 数据准备 models.py from sqlalchemy.ext ...
- MySQL之多表操作
前言:之前已经针对数据库的单表查询进行了详细的介绍:MySQL之增删改查,然而实际开发中业务逻辑较为复杂,需要对多张表进行操作,现在对多表操作进行介绍. 前提:为方便后面的操作,我们首先创建一个数据库 ...
- mysql 库与表操作
1. 库操作 1.1. 创建数据库 语法规则:create database 库名; CREATE DATABASE dt55; 在创建库时,希望指定编码语法:create database 库名 c ...
- 数据库之 MySQL --- 数据处理 之 表操作、CRUD(六)
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一. 表操作 创建数据库CREATE DATABASE demo-- 删除数据库DROP DATABAS ...
- python爬取信息到数据库与mysql简单的表操作
python 爬取豆瓣top250并导入到mysql数据库中 import pymysql import requests import re url='https://movie.douban.co ...
- 学习MySQL之单表操作(二)
##单表操作 ##创建表 CREATE TABLE t_employee( empno ), ename ), job ), MGR ), Hiredate DATE DEFAULT '0000-00 ...
- Mysql之数据表操作
数据表操作: 查看当前数据库中所有的表: show tables; 查看当前使用数据库: select database(); 使用数据表: use 表名; 创建数据表: create table 数 ...
- Day13 SQLAlchemy连表操作和堡垒机
一.数据库操作 1.创建表.插入数据和一对多查询 #!/usr/bin/env python # -*- coding: utf-8 -*- # Author: wanghuafeng from sq ...
- Mysql之库表操作(胖胖老师)
SQL概念:结构化查询语言(SQL = Structured Query Language),也是一种编程语言(数据库查询和程序设计语言),可以用于数据的存取及查询,更新,管理关系型数据库系统ps: ...
- MySQL删除超大表操作
======================================================================== 问题原因 通常情况下,会使用innodb_file_p ...
随机推荐
- php unicode转字符串
<?php /** * @param string $str 需转换字符,这里为单个字符 * @return string */ function get_unicode($str) { $bi ...
- 定义了char**p,为什么能用p[i][j]的形式?p又不是二维数组?
char **p;p[i][j]相当于*(*(p+i)+j) https://www.zhihu.com/question/63717863
- Java中boolean类型占用多少个字节?我说一个,面试官让我回家等通知
摘自:https://www.cnblogs.com/qiaogeli/p/12004962.html 程序员乔戈里 腾讯面试官问我Java中boolean类型占用多少个字节?我说一个,面试官让我回家 ...
- Netfilter 之 iptable_nat
初始化 iptable_nat_table_init函数通过调用ipt_register_table完成NAT表注册和钩子函数注册的功能:该流程与iptable_filter的函数调用的函数一致,此处 ...
- echarts中国地图3D各个城市标点demo
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <meta ...
- ci框架总结(一)
在进行数据库操作前一定要先初始化数据库类:$this->load->database(); 在model类中: class Myiapp_model extends CI_Model{ p ...
- code备忘
按空白符分隔(正则) String[] split = line.trim().split("\\s+");
- CNN中感受野大小的计算
1 感受野的概念 从直观上讲,感受野就是视觉感受区域的大小.在卷积神经网络中,感受野的定义是 卷积神经网络每一层输出的特征图(feature map)上的像素点在原始图像上映射的区域大小. 2 感受野 ...
- 【SR汇总】算法时间效率
1.SRCNN-0.39s SRCNN处理速度. 论文:Learning a Deep Convolutional Network forImage Super-Resolution 中,4.2节. ...
- 9Patch图
NinePatch是一种很有用的PNG图片格式,它可以在特定区域随文字大小进行缩放. - 上边线控制水平拉伸- 左边线控制竖直拉伸- 右边线和下边线控制内容区域 如下: 背景图片的中间区域会随着文字的 ...