除了 `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` 属性。