Tornado 分页问题求解! - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
waynee
V2EX    Tornado

Tornado 分页问题求解!

  •  
  •   waynee 2015-05-11 14:12:52 +08:00 5274 次点击
    这是一个创建于 3885 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近在学习Tornado,在写分页的时候遇到了瓶颈。
    是参照这个问答进行写的:
    http://stackoverflow.com/questions/15981257/can-tornado-handle-pagination

    路径就是:(r"/",MainHandler)

    逻辑是:
    class MainHandler(BaseHandler):
    def get(self,template_variables = {}):
    news_timeline = self.news_model.get_all_news() #获取所有news
    current_page = int(self.get_argument('page',0)) # 获取当前URL里的page参数
    template_variables["news_timeline"] = news_timeline
    template_variables["current_page"] = current_page
    self.render("index.html",**template_variables)

    HTMl是:
    <body>
    {% for news in news_timeline %}
    <a href = "{{ news["news_link"] }}">{{ news["news_name"] }}</a>
    {% end %}
    {% module Paginator(current_page,5, len(news_timeline)) %}
    </body>

    但是底部的分页链接能够显示出来,可是所有结果都显示在了一个页面,并没有分开显示。现在找不到问题在哪里,是我少些了什么代码吗?

    各位大神,求教!!!
    8 条回复    2015-05-12 13:25:23 +08:00
    waynee
        1
    waynee  
    OP
       2015-05-11 14:46:21 +08:00
    自己顶,搞了两天的,还是没效果。
    tpircsboy
        2
    tpircsboy  
       2015-05-11 14:57:28 +08:00 via Android   1
    tornado并不能帮你处理分页,分页整个逻辑都需要自己来做。而且stackoverflow上那个答案也说了他的代码只是用来生成分页连接,this doesn't limit those results for you, if just builds the pagination links。
    所以你需要把你的news_timeline自己分开。
    waynee
        3
    waynee  
    OP
       2015-05-11 15:00:33 +08:00
    @tpircsboy 那要在数据库查询的时候 使用 limit?没做过这方面的,求指教。
    zuroyu
        4
    zuroyu  
       2015-05-11 15:01:40 +08:00
    news_timeline = self.news_model.get_all_news() #获取所有news
    这不是所有结果才叫奇怪呢...
    Paginator只是实现了展示内容,并没有实现分页功能

    建议从简单开始写一个分页功能,搞清楚分页的原理。包含页数是如何算出来的, 如何获取分页内容, 真假分页的区别等...
    tpircsboy
        5
    tpircsboy  
       2015-05-11 15:17:53 +08:00 via Android
    @waynee 嗯,数据库查询时需要skip和limit
    waynee
        6
    waynee  
    OP
       2015-05-11 16:18:51 +08:00
    @tpircsboy skip 是干吗的?我只用了 limit 也实现了
    coderwang
        7
    coderwang  
       2015-05-11 16:37:38 +08:00   1
    @waynee 就是从第几条开始 mongodb 查询是skip limit , mysql 一个limit 就可以
    phithon
        8
    phithon  
       2015-05-12 13:25:23 +08:00
    你代码并没有分页,而且tornado里也并没有分页的辅助类、方法,分页自己实现。
    可以参考我写的Minos里的分页函数:
    https://github.com/phith0n/Minos
    主要是你后端得进行limit 限制每次查出来的是从几到几个对象。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5207 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 09:15 PVG 17:15 LAX 01:15 JFK 04:15
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86