Flask框架从入门到精通之模型关系(十七)
Posted 小_源
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask框架从入门到精通之模型关系(十七)相关的知识,希望对你有一定的参考价值。
知识点:
1、模型关系参照
一、概况
在数据库中,我们知道数据关系大概有如下几种:一对一、一对多、多对多、自关联等。我们模型已经描述过了一对多,那么下面我们在用模型把其它关系也写出来。
关系
class Article(db.Model):
__tablename__ = 'tbl_article'
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(128), unique=True)
content = db.relationship('Acontent', backref='article', uselist=False)
class Acontent(db.Model):
__tablename__ = 'tbl_acontent'
id = db.Column(db.Integer, primary_key=True)
content = db.Column(db.Text(4000))
article_id = db.Column(db.Integer, db.ForeignKey('tbl_article.id'))
tbl_article
tbl_acontent
id | content | article_id |
---|
1 | Flask是轻量级框架 | 1 |
2 | Flask是模型入门 | 2 |
class Category(db.Model):
__tablename__ = 'tbl_category'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(32), unique=True)
article = db.relationship('Article', backref='category')
class Article(db.Model):
__tablename__ = 'tbl_article'
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(128), unique=True)
category_id = db.Column(db.Integer, db.ForeignKey('tbl_category.id'))
content = db.relationship('Acontent', backref='article', uselist=False)
tbl_category
tbl_article
id | title | category_id |
---|
1 | Flask是轻量级框架 | 1 |
2 | Flask是模型入门 | 2 |
3 | Flask是模型查询 | 2 |
- 多对多模型
案例:一个标签对应很多文章,一篇文章也对应很多标签
tbl_tags = db.Table('tbl_tags',
db.Column('tag_id', db.Integer, db.ForeignKey('tbl_tag.id')),
db.Column('article_id', db.Integer, db.ForeignKey('tbl_article.id'))
)
class Tag(db.Model):
__tablename__ = 'tbl_tag'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(32), unique=True)
class Article(db.Model):
__tablename__ = 'tbl_article'
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(128), unique=True)
category_id = db.Column(db.Integer, db.ForeignKey('tbl_category.id'))
content = db.relationship('Acontent', backref='article', uselist=False)
tags = db.relationship('Tag', secondary=tbl_tags, backref='articles')
tbl_tag
tbl_article
id | title | category_id |
---|
1 | Flask是轻量级框架 | 1 |
2 | Flask是模型入门 | 2 |
3 | Flask是模型查询 | 2 |
tbl_tags
class Area(db.Model):
__tablename__ = "tbl_area"
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.Text, nullable=False)
parent_id = db.Column(db.Integer, db.ForeignKey("tbl_area.id"))
parent = db.relationship("Area", remote_side=[id])
id | name | parent_id |
---|
1 | 北京市 | Null |
2 | 黑龙江 | Null |
3 | 哈尔滨 | 2 |
4 | 南岗区 | 3 |
5 | 北京市 | 1 |
6 | 朝阳区 | 5 |
以上是关于Flask框架从入门到精通之模型关系(十七)的主要内容,如果未能解决你的问题,请参考以下文章
Flask框架从入门到精通之模型数据库配置
Flask框架从入门到精通之模型数据库配置
Flask框架从入门到精通之模型创建与添加
Flask框架从入门到精通之模型创建与添加
Flask框架从入门到精通之模型迁移操作(十六)
Flask框架从入门到精通之模型更新与删除(十四)