如何使用 flask-sqlalchemy 为 flask 网站中的帖子实现标签功能?

问题描述 投票:0回答:0

如何使用 flask-sqlalchemy 为 flask 网站中的帖子实现标签功能?

在我的 flask 网站中,用户可以创建帖子。帖子可以有标签,用于定义和总结帖子中存在的内容类型。 例如,一个帖子可以有'action' 和'mystery' 标签(目前没有预定义的标签)。 正如您在前面的示例中可能已经观察到的那样,一篇文章可以有多个标签,因此我想在表之间创建这样的关系。 (如果有的话,后面会提到) 我将从用户可以创建帖子的模板的“文本”类型的输入字段中获取用户的输入作为文本。 我应该怎么做呢?我应该创建一个名为标签的新表吗?如果是,按照 flask-sqlalchemy,它的结构应该是什么样的。 一般来说,我是烧瓶和网络开发的新手,所以我不知道如何去做我以前没有做过的事情:/ 这是表“post”的代码:

class Posts(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
    # post_name = db.Column(db.String(50), nullable=False)
    likes = db.relationship('Like', backref='Posts', passive_deletes=True)
    date_created = db.Column(db.DateTime, nullable=False, default=datetime.datetime.now(tz=datetime.timezone.utc))
    comments = db.relationship('Comment', backref='Posts', passive_deletes=True)

用户将在输入字段中以文本形式输入标签,每个单词都是一个标签,用空格分隔。 我正在尝试做的一个很好的现实生活示例是堆栈溢出中的标签字段或 reddit 中的标签。 尽管这两个设施都有一些预定义的标签,但在 reddit 中,您可以从大量标签中进行选择,这些标签将显示在屏幕上(这不是我想要做的)。 在堆栈溢出中,您首先将标签作为文本输入(类似于我正在尝试做的),然后您可以选择您所写的内容是否与网站上预先确定的标签相匹配。 (我不会实现关于预先确定的标签的最后一部分,所以它将是纯旧文本)

python flask sqlalchemy flask-sqlalchemy
© www.soinside.com 2019 - 2024. All rights reserved.