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 ...
随机推荐
- docker crontab踩坑记录
环境,docker centos7.4 容器启动时注意两点 入口要设置/usr/sbin/init,并且配置主机完全访问权限(--privileged) (否则执行service的时候会出现Faile ...
- mysql与Oracle的区别:
1. Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Oracle价格非常高. 2. Oracle支持大并发,大 ...
- DataFactory生产手机号码
表中的数据类型是CHAR()类型的,才会出现,如右图的“Build a composite field”的这个功能: 固定部分设置 剩余变化部分设置 操作成功 数据库查询的结果
- LVS集群
集群: 将许多小的,性能较低的服务器做成一个大的性能高的超级服务器 集群分为负载均衡集群,高可用集群,高性能运算集群 LVS体系结构与工作原理描述 LVS集群负载均衡器接受服务的所有入站客户端计算机请 ...
- SmartTest__自动随机填充表单数据
下载地址https://addons.mozilla.org/zh-CN/firefox/addon/smarttesttool/ 安装完成后可以在工具栏看见 目前只包含两个功能 测试使用
- Qt编写自定义控件19-图片背景时钟
前言 图片背景时钟控件,是全套控件(目前共145个)中唯一的几个贴图的控件,这个背景要是不贴图,会画到猝死,必须用美工做好的图贴图作为背景,此控件以前学C#的时候写过,后面在写Qt控件的过程中把他移植 ...
- openstack核心组件--glance镜像(2)
一.glance介绍: Glance是Openstack项目中负责镜像管理的模块,其功能包括虚拟机镜像的查找.注册和检索等. Glance提供Restful API可以查询虚 ...
- Java泛型(3):泛型方法
泛型还可以同样运用在方法.是否拥有泛型方法与其所在的类是否是泛型类没有关系. 无论何时,只要你能做到,都应该尽量使用泛型方法,如果泛型方法可以取代将整个类整个类泛型化,那么就应该只使用泛型方法. 下面 ...
- dtcms 手机浏览
private string GetSitePath(string webPath, string requestPath, string requestDomain) { //获取当前域名包含的站点 ...
- Git学习教程一之安装Git&&&本地仓库建立
一. 安装git 1:在Windows上使用Git,可以从Git官网直接下载安装程序,(网速慢的同学请移步国内镜像),然后按默认选项一直安装即可. 2:安装完成后,在开始菜单里找到“Git”-> ...