成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Flask分頁iter_pages之None分析

Honwhy / 2909人閱讀

摘要:當(dāng)然以上促使以上三個任意條件中任意一個永遠成立都可以進行完整遍歷,當(dāng)然還有其他遍歷的方式,大家可以腦洞想想。

昨天看一了下問答區(qū)的問題,很多人都咨詢了flask在分頁的時候總是會遍歷出None,這是怎么回事呢?先來一段小程序:
數(shù)據(jù)庫信息:


代碼程序:

if __name__ == "__main__":
    user=User.query.paginate(1,2)
    for i in user.iter_pages():
        print(i,end="   ")
        
輸出信息:1   2   3   4   5   None   8   9 

今天我自己看了一下源碼,來分析一下

def iter_pages(self, left_edge=2, left_current=2,
                   right_current=5, right_edge=2):
    last = 0
    for num in xrange(1, self.pages + 1):
        if num <= left_edge or 
           (num > self.page - left_current - 1 and 
            num < self.page + right_current) or 
           num > self.pages - right_edge:
            if last + 1 != num:
                yield None
            yield num
            last = num

可以很明了的看到當(dāng)last+1 != num的時候就會返回None,那么接下來的問題就是如果可以使
last+1 != num,那就是當(dāng)
num <= left_edge or
(num > self.page - left_current - 1 and num < self.page + right_current) or
num > self.pages - right_edge不成立的時候,
下次循環(huán)就會使last+1 != num。
那么,我們?nèi)绾谓Y(jié)果很多人想要完整遍歷的目的呢?那就是在默認參數(shù)總改變值,使上述的三個條件中任意一個永遠成立,如使num <= left_edge永遠成立

for i in user.iter_pages(left_edge=user.pages):
    print(i,end="   ")
    
輸出結(jié)果:1   2   3   4   5   6    7    8   9

這樣就完美解決了。當(dāng)然以上促使以上三個任意條件中任意一個永遠成立都可以進行完整遍歷,當(dāng)然還有其他遍歷的方式,大家可以腦洞想想。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/42929.html

相關(guān)文章

  • python實戰(zhàn)----Todo清單續(xù)寫

    摘要:創(chuàng)建時間登錄用戶登錄地點外鍵確保你有一個關(guān)于數(shù)據(jù)庫遷移的文件,基礎(chǔ)代碼如下在終端執(zhí)行命令添加日志信息第二步,給路由和對應(yīng)視圖函數(shù)加上采集的日志信息以添加清單任務(wù)為例修改狀態(tài)和刪除任務(wù)也加上日志信息,這里省略西安添加任務(wù) 添加分頁功能 第一步:是對視圖函數(shù)的改寫,通過查詢數(shù)據(jù)庫數(shù)據(jù),進行分頁顯示 # 修改清單顯示的視圖函數(shù) @app.route(/list/) @app.route(/l...

    DC_er 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<