Flask数据库关系

基础配置

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
db = SQLAlchemy(app)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:[email protected]/flask'

一对多

class Singer(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(70), unique=True)
    songs = db.relationship('Song', backref='singer')

class Song(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(70), unique=True)
    singer_id = db.Column(db.Integer, db.ForeignKey('singer.id'))

多对一(不是必须时还是用与一对多吧)

比一对多的用法,会少一个从一里访问多的字段。

class Citizen(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(70), unique=True)
    city_id = db.Column(db.Integer, db.ForeignKey('city.id'))
    city = db.relationship('City')

class Country(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(79), unique=True)
    capital = db.relationship('Capital', uselist=False)

一对一

class Country(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(79), unique=True)
    capital = db.relationship('Capital', uselist=False)

class Capital(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(70), unique=True)
    country_id = db.Column(db.Integer, db.ForeignKey('country.id'))
    country = db.relationship('Country'

多对多

association_table = db.Table(
    'association',
    db.Column('student_id', db.Integer, db.ForeignKey('student.id')),
    db.Column('teacher_id', db.Integer, db.ForeignKey('teacher.id'))
)

class Student(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(70), unique=True)
    grade = db.Column(db.String(20))
    teachers = db.relationship(
        'Teacher', secondary=association_table, backref='students')

class Teacher(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(70), unique=True)
    office = db.Column(db.String(20))

原文地址:https://www.cnblogs.com/tmdhhl/p/11408409.html

时间: 2024-10-07 10:27:40

Flask数据库关系的相关文章

Flask数据库基本操作-SQLAlchemy

Flask数据库D:使用扩展包flask-sqlalchemy来操作数据库(增删改查)E:通过 Python 对象来操作数据库,在舍弃一些性能开销的同时,换来的是开发效率的较大提升U:常用的SQLAlchemy字段类型 类型名 python中类型 说明 Integer int 普通整数,一般是32位 SmallInteger int 取值范围小的整数,一般是16位 BigInteger int或long 不限制精度的整数 Float float 浮点数 Numeric decimal.Decim

用mysql workbench导出mysql数据库关系图

用mysql workbench导出mysql数据库关系图 1. 打开mysql workbench,选择首页中间"Data Modeling"下方的第二栏"Create EER Model From Existing Database";2. 在"Stored Connection"里选择"Manage Stored Connections...";3. 在Manage DB Connections里选择“New”新建连接,

数据库关系图

对特定的数据库表进行可视化管理与分析 一个数据库可以创建多个数据库关系图 使用系统存储过程改变数据库所有者为当前登录SA账号 EXEC sp_changedbowner sa 原文地址:https://www.cnblogs.com/xiaowie/p/8674995.html

Flask 数据库多对多自引用关系

上篇介绍的多对多关系是两个模型是之间的多对多关系,关联表联接的是两个明确的实体,还有些情况下只有一个模型,与自己之间存在多对多关系.比如用户之间的关注.表示用户关注其他用户时,只有用户一个实体,没有 第二个实体.如果关系中的两侧都在同一个表中, 这种关系称为自引用关系. 在关注中, 关系的左侧是用户实体,可以称为"关注者":关系的右侧也是用户实体,但这些是"被关注者".从概 念上来看,自引用关系和普通关系没什么区别,只是不易理解.下图 是自引用关系的数据库图解,表示

Flask 数据库多对多关系

数据库使用关系建立记录之间的联系.其中,一对多关系是最常用的关系类型,它把一个记录和一组相关的记录联系在一起.实现这种关系时,要在"多"这一侧加入一个外键,指向"一"这一侧联接的记录.大部分的其他关系类型都可以从一对多类型中衍生. 多对一关系从"多"这一侧看,就是一对多关系. 一对一关系类型是简化版的一对多关系, 限制"多"这一侧最多只能有一个记录.唯一不能从一对多关系中简单演化出来的类型是多对多关系,这种关系的两侧都有多个记

flask 定义数据库关系(一对一)

一对一 我们将使用国家和首都来演示一对一关系:每个国家只有一个首都.反过来,一个城市也只能作为一个国家的首都.一对一关系如下: 在示例程序中,Country类表示国家,Capital类表示首都.建立一对一关系后,我们将在Country类中创建一个标量关系capital,调用它会获取单个Capital对象,我们还在Capital类中创建一个标量关系属性country,调用它会获取单个的Country对象. 一对一关系实际上是通过建立双向关系的一对多关系的基础上转化而来.我们要确保关系两侧的关系属性

flask 数据库操作

说到flask中操作数据库首先要先引入一个概念:ORM ORM 全拼Object-Relation Mapping. 中文意为 对象-关系映射 其实它就是模型对象的概念,把数据库的信息映射成一个个对象来操作, 而不需要编写sql语句,简单来说就是面向对象编程的概念. flask 中的SQLAlchemy 就是一个ORM框架,它依赖于pymysql,使用关系对象映射对数据库进行操作 SQLAlchemy 的安装命令: pip install flask-sqlalchemy 下面就用代码展示使用S

flask数据库基本操作

数据库基本操作 在Flak-SQLAlchemy中,插入.修改.删除操作,均由数据库会话管理. 会话用db.session表示.在准备把数据写入数据库前,需要先将数据添加到会话中然后调用commit()方法提交会话. 在Flask-SQLAlchemy中,查询操作是通过query对象操作数据. 最基本的查询时返回表中所有数据,可以通过过滤器进行更精确的数据库查询. 定义模型类 一般实际工作中我们会把模型创建到单独的文件中,学习阶段我们先将模型类写在main.py文件中. from flask i

ER 和 数据库关系模式

http://lianghuanyue123.blog.163.com/blog/static/130423244201162011850600/ 我们眼下所接触的数据库基本上是关系数据库,关系数据库中的关系模式是型,而关系是值.关系模式是对关系的描写叙述. 什么是关系?关系实质上是一张二维表,当中每一行是一个元组,每一列是一个属性,每一个元组是该关系涉及到属性集合笛卡尔积的一个元素.(笛卡尔积是这种一个集合.集合中的元素是有序对,若A={0,1}B={a,b}则:A*B={<0,a>,<