国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

python - flask sqlalchemy 多對多查詢的結果如何進行分頁?
三叔
三叔 2017-06-12 09:22:47
0
1
1519

學習flask中正在用flask做一個博客,(一篇文章可以有多個標籤,一個標籤可以對應多個文章,所以我這裡按照網(wǎng)上的採用了many to many的關係),flask-sqlalchemy自帶的paginate方法只能支援flask_sqlalchemy.BaseQuery的物件進行分頁,但是我在多對對關係中用標籤找出所有已關聯(lián)該標籤的文章物件是一個list,所以就不能分頁。 。 。我現(xiàn)在想做分頁是怎麼辦?

我現(xiàn)在是要自己寫一個分頁嗎?如果寫大概是什麼思路希望好心的大牛指點一下。
範例:

#多對多關系中的兩個表之間的一個關聯(lián)表
tags = db.Table('post_tags',
    db.Column('post_id',db.Integer,db.ForeignKey('posts.id')),
    db.Column('tag_id',db.Integer,db.ForeignKey('tag.id'))
)

# 發(fā)表文章模型
class Post(db.Model):
    __tablename__ = 'posts'
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(255))
    body = db.Column(db.Text())
    body_html = db.Column(db.Text())
    created = db.Column(db.DateTime)

    author_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    comments = db.relationship('Comment', backref='post',lazy='dynamic')  # 關聯(lián)評論
    tags = db.relationship('Tag',secondary=tags,backref=db.backref('posts',lazy='dynamic'))#多對多關聯(lián)

    def __repr__(self):
        return "<post_id={0}>".format(self.id)
        
#標簽
class Tag(db.Model):
    __tablename__ = 'tag'
    id = db.Column(db.Integer,primary_key=True)
    title = db.Column(db.String(255))\


    def __repr__(self):
        return "{0}".format(self.title)

三叔
三叔

全部回覆(1)
伊謝爾倫

我表示分頁無壓力啊 完全可以用分頁啊

>>> r=Role.query.get(1)
>>> r
manager
>>> r.users
<sqlalchemy.orm.dynamic.AppenderBaseQuery object at 0x7f5ae257a510>
>>> r.users.paginate(1, 20, None)                
<flask_sqlalchemy.Pagination object at 0x7f5ae1829150>

User 和 Role 就是多對多的,沒發(fā)現(xiàn)樓主說的問題。

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板