SQLAlchemy中表结构的一对一

1.先创建两个数据库类,例如创建LOL与DATA2这两个类

LOL表为主表

class LOL(db.Model):
    __tablename__ = "lol"
    id = db.Column(db.Integer, primary_key=True)
    lname = db.Column(db.String(30), nullable=False)
    # 增加关联属性以及反向引用属性
    data = db.relationship("DOTA2", backref = "lol", uselist=False)

    def __repr__(self):
        return "<LOL:%r>" % self.lname

DOTA2位从表,里面含有一个lol_id字段为外键,因此两张表进行了关联

class DOTA2(db.Model):
    __tablename__ = "dota2"
    id = db.Column(db.Integer, primary_key=True)
    dname = db.Column(db.String(30))
    # 增加一个列(外键):表示引用自LOL表的外键
    lol_id = db.Column(db.Integer, db.ForeignKey("lol.id"))

    def __init__(self, dname):
        self.dname = dname

    def __repr__(self):
        return "<DOTA2:%r>" % self.dname

接着往lol表中添加数据

原文地址:https://www.cnblogs.com/zengsf/p/9898291.html

时间: 2024-08-04 04:27:31

SQLAlchemy中表结构的一对一的相关文章

SQLAlchemy中表结构的一对多

from flask import Flask from flask_sqlalchemy import SQLAlchemy import pymysql pymysql.install_as_MySQLdb() app = Flask(__name__) # 连接数据库 app.config["SQLALCHEMY_DATABASE_URI"] = "mysql://root:[email protected]:3306/flask" # 采用自动提交方式 ap

PL/SQL Developer中表结构、表数据的导出和导入

导出表结构: Tools(工具)-->Export User Objects(导出用户对象) -->选择要导出的表(包括Sequence等)-->.sql文件,导出的都为sql文件 导出表数据: Tools(工具)-->Export Tables(导出表)-->选择表,选择SQL Inserts(SQL 插入)-->.sql文件 导入表结构: 执行刚刚导出的sql文件,记住要删掉table前的用户名,比如以前这表名为sys.tablename,必须删除sys 导入表数据

在线批量修改mysql中表结构

1.获取要修改的表的表名称登录mysql库,查询出所有表 show tables; 将需要修改表结构的表名称存放到b.txt文件中2.执行修改修改表引擎为InnoDB for i in `cat b.txt`;do /usr/local/percona-toolkit/bin/pt-online-schema-change --user=root --password=123456 --host=localhost --charset=utf8 --alter="ENGINE=InnoDB&qu

Oracle读取库中表结构

(学习记录) 代码中Table类与Field类请参照:http://meijia.blog.51cto.com/8684191/1563874 可参考api调整相关参数. (同样注意格式) 1. 方法如下 public List<Table> export() { List<Table> tableList = new ArrayList<Table>(); Connection conn = DBUtil.getConnection(); ResultSet tabl

liferay修改service.xml 中表结构后,数据库中表不发生改变

启动tomcat时,console报错: com.liferay.portal.OldServiceComponentException: Build namespace IEVENTS has build number 444 which is newer than 438. 这是因为每次build service时,会在service.properties文件中修改build.number,这个number会随着build service次数的增加而增加. 因此修改方法为,找到对应的serv

JPA总结——实体关系映射(一对一@OneToOne)

一对一(@OneToOne) · 单向关联# 注释@OneToOne定义如下:@Target({METHOD, FIELD}) @Retention(RUNTIME)public @interface OneToOne {    Class targetEntity() default void.class;    CascadeType[] cascade() default {};    FetchType fetch() default EAGER;    boolean optional

基础入门_Python-模块和包.深入SQLAlchemy之SQLAlchemy ORM重构表?

简单介绍: 说明: 此模块主要用于将关系型数据库表映射到PY的类,行映射到PY类的实例,列映射为PY实例的属性,由于其兼容众多DB-API及扩展,SO可以优先考虑数据模型,而忽略底层的DB-API切换,数据迁移更方便. 快速安装: pip install --upgrade SQLAlchemy 定义结构: #!/usr/bin/env python # -*- coding: utf-8 -*- """ # # Authors: limanman # OsChina: ht

Hibernate(三)结构-配置文件-实体映射及配置文件

一.体系结构 SessionFactory:属于单一数据库的编译过的映射文件的一个线程安全的,不可变的缓存快照.Session的工厂.有可能持有一个可选的数据缓存可以进程级别或者群级别保存可以在事务中重用数据. 会话,Session:单线程,生命期短促的对象,代表应用程序和持久化层之间的一次对话.封装了一个JDDBC连接,它也是Transaction的工厂,保存有必须持久化对象的缓存,用于遍历对象,或者通过标识符查找对象. 持久化对象(Persistent Object)及其集合(Collect

【SSH进阶之路】Hibernate映射——一对一双向关联映射(六)

上篇博文[SSH进阶之路]Hibernate映射--一对一单向关联映射(五),我们介绍了一对一的单向关联映射,单向是指只能从人(Person)这端加载身份证端(IdCard),但是反过来,不能从身份证端加载人得信息.如图所示: 关键原因在于对象模型具有方向性: 单向:一端只能加载另一端,不能反过来. 双向:两端都可以加载另一端. 问题来了:如何我们想从身份证端(IdCard)加载人(Person),怎么办呢? 下面我们开始介绍一对一的双向关联映射. 映射原理 双向关联映射与单向关联映射的原理是一