如何在评论文章时通过posted获取文章的用户id?

2024-03-29 15:17:01 发布

您现在位置:Python中文网/ 问答频道 /正文

环境:MySQL与外键关联,SQLALchemy与Flask。你知道吗

  • 表(用户):id,用户名
  • 表(Post):id,content

    用户id=分贝柱(db.整数, 数据库外键('用户id)

  • 表(注释):id、内容、文章作者id

    用户id=分贝柱(db.整数, 数据库外键('用户id'))

    注释id=分贝柱(db.整数, 数据库外键('职位id)

当汤姆对杰基发表的一篇文章发表评论时,他说:

http://myblog.com/post/<postid>

我需要保存这个评论,同时,根据<postid>,我想将这个帖子的用户id作为post\u author\u id保存到表comment中。这意味着表注释保存了Tom的用户id和Jackie的用户id。如何编写SQLALchemy行?你知道吗

post_author_id = ?

Tags: 用户id数据库db环境sqlalchemy文章mysql
1条回答
网友
1楼 · 发布于 2024-03-29 15:17:01

理想情况下,您希望动态获取此信息,而不是将其存储为数据库中的另一列,因为此数据(post_author_id)已经存在于posts表中(邮政用户id). 你知道吗

为此,可以使用SQLAlchemy的Hybrid Attributes。你知道吗

from sqlalchemy import Column, Integer, String, ForeignKey
from sqlalchemy.orm import relationship
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.ext.hybrid import hybrid_property

Base = declarative_base()

class User(Base):
    __tablename__ = 'users'

    id = Column(Integer, primary_key=True)
    username = Column(String, nullable=False)


class Post(Base):
    __tablename__ = 'posts'

    id = Column(Integer, primary_key=True)
    user_id = Column(Integer, ForeignKey('users.id'))
    user = relationship(User)
    content = Column(String)

class Comment(Base):
    __tablename__ = 'comments'

    id = Column(Integer, primary_key=True)
    user_id = Column(Integer, ForeignKey('users.id'))
    post_id = Column(Integer, ForeignKey('posts.id'))
    post = relationship(Post)
    content = Column(String)

    @hybrid_property
    def post_author_id(self):
        return self.post.user_id

有多种方法可以编写Comment.post_author_id

相关问题 更多 >