适当减少手机使用,有助于视力保护... 新的一年祝您:身体健康,阖家欢乐!~~

Flask-SQLAlchemy 中的关联表 操作

浏览量:551 作者:admin 类别:: Flask 更新时间:2023-05-25 08:49:56

除了 `append` 操作,Flask-SQLAlchemy 中的关联表还支持 `remove`、`pop`、`clear` 等常用操作,以及列出关联记录的操作,主要使用 Query 对象查询。

 

以一对多关系的例子为例,可以使用以下代码对关联记录进行操作:

 

``` python

# 找到要修改的文章

article = Article.query.filter_by(title='Title1').first()

 

# 移除文章所属的作者

article.author = None

 

db.session.commit()

``` 

 

上面的代码中,移除文章所属的作者可以直接把文章的 `author` 属性设为 `None`,然后提交事务。

 

另外,还可以使用 `remove()` 方法通过指定参数移除指定的关联记录,使用 `pop()` 方法来移除最后一个关联记录,使用 `clear()` 方法来清空所有的关联记录。

 

``` python

# 移除文章所属的作者

article.author = None

db.session.commit()

 

# 移除指定的关联记录

author = Author.query.get(1)

article = author.articles[0]

author.articles.remove(article)

db.session.commit()

 

# 移除最后一个关联记录

author.articles.pop()

db.session.commit()

 

# 清空所有的关联记录

author.articles.clear()

db.session.commit()

```

 

另外,还可以通过 Query 对象来查询关联记录,例如找到一篇文章的作者,可以使用以下代码:

 

``` python

# 找到一篇文章的作者

article = Article.query.filter_by(title='Title1').first()

author = article.author

 

print(author.name)

```

 

上面的代码中,首先查询到一篇文章实例 `article`,然后通过其 `author` 属性就可以获得其对应的作者实例 `author`,进而打印出其 `name` 属性。

 

关于博主
北京南城网络及弱电【张工】为您提供:
校园网、楼宇、村镇、园区,光纤网络覆盖,无线覆盖 华为|H3c|锐捷|爱快|panabit等品牌,路由、交换机、AC、AP 无源光网络(PON)设备,布署、调试、维运,等服务...
应急/临时光纤熔接...[藤仓22S]
博文为学习python所写:内容摘自网络、学习笔记、记事备忘。
QQ:872876353,欢迎交流学习、加Q注明来意。

诗文鉴赏

《满江红》· 岳飞
落星侵晓没,
残月半山低。
怒发冲冠,
凭栏处、潇潇雨歇。
抬望眼、仰天长啸,壮怀激烈。
三十功名尘与土,八千里路云和月。
莫等闲、白了少年头,
空悲切。
源于生活-记录日常
The site based on python 3 with flask...