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 ...
随机推荐
- wgs84 转百度经纬度坐标
/** * wgs84 转百度地图坐标 * @param $lng * @param $lat * @return array */ function toBaiduLocation($lng,$la ...
- CSS子元素在父元素中水平垂直居中的几种方法
1. 水平居中(margin: auto;)子父元素宽度固定,子元素上设置 margin: auto; 子元素不能设置浮动,否则居中失效. #div1{ width: 300px; height: 3 ...
- 发布机制-灰度发布-例子:Gmail Labs
ylbtech-发布机制-灰度发布-例子:Gmail Labs Gmail Labs是一个新特性橱窗,用户可以自己选择一些未正式发布的新特性进行体验,不喜欢可以关闭,在这个过程中,吃了螃蟹,也当了Go ...
- CentOS 7系统配置上的变化
http://www.linuxidc.com/Linux/2014-09/107375p4.htm CentOS 7系统配置上的变化解析 ip ss指令替代 ifconfig route arp n ...
- 【C# in depth 第三版】温故而知新(1) (转)
声明 本文欢迎转载,原文地址:http://www.cnblogs.com/DjlNet/p/7192354.html 前言 关于这本书(<深入理解C# 第三版>)的详细情况以及好坏,自行 ...
- 等待数据库引擎恢复句柄失败 SqlServer2012安装时报错 Win10
上周,在一批Win10系统电脑上安装SqlServer 2012时,屡次发生报错,安装失败,显示的失败信息是:等待数据库引擎恢复句柄失败 如下图所示: 面对这样的错误,我的第一反应是百度,在百度上找了 ...
- React Native面试题记录
一.ES6中增加了那些新的功能? 1> for-of循环: 使用 for-of 的时候,循环的是数组内部的元素且不会出现 for-in 中将附加属性也遍历的情况,其次,循环变量的类型和其在数组中 ...
- .Net Core 2.*+ InfluxDB+Grafana+App Metrics实时性能监控
前言 .net core 2.* 实施性能监控 这个工具其实给运维 大大们用起来是更爽的.但是Grafana现在还没有找到中文版. 本文需要了解的相关技术与内容: InfluxDb(分布式时序数据库, ...
- mysql数据库查找数据的方法。
今日内容 1.外键的变种 唯一索引:关键字 unique(num) 作用:使指定的列,中的属性不能重复,并且加速查找案例:create table t5(id int,num int,unique(n ...
- docker部署jar、war包方法
一.将war包放入容器 1.# docker imagesREPOSITORY TAG IMAGE ID ...