请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

6-4 章节,pagination 报错

tag_list.html 导入 ui 文件夹的 admin_page.html 后,尝试进入 http://127.0.0.1:5000/admin/tag/list/1/   时出现如下报错:

werkzeug.routing.BuildError

werkzeug.routing.BuildError: Could not build url for endpoint 'admin.tag_list'. Did you forget to specify values ['page']?

我把 views.py , tag_list.html  和 admin_page.html 对着视频检查了两遍,确认和老师一样的,但还是有以上报错,请老师帮忙指点,谢谢!

正在回答

5回答

同学,你好,这是flask-sqlalchemy分页设计的功能,当有多页的时候中间的一些按钮就会隐藏,你可以加上如下admin_page.html中判断:

{% for v in data.iter_pages() %}
    {% if v %}
        {% if v != data.page %}
            <li ><a href="{{ url_for(url,page=v) }}">{{ v }}</a></li>
        {% else %}
            <li class="active"><a href="#">{{ v }}</a></li>
        {% endif %}
    {% endif %}
{% endfor %}


0 回复 有任何疑惑可以回复我~
  • 提问者 宝慕林6589715 #1
    老师,你可能没留意到我发给你的 admin_page的截图,已经有等同于这一段的代码了,加上去不就重复了吗。
    回复 有任何疑惑可以回复我~ 2017-08-09 15:38:36
  • rustgopy 回复 提问者 宝慕林6589715 #2
    没有重复,你细心看一下{% if v %},加这个判断!
    回复 有任何疑惑可以回复我~ 2017-08-09 15:42:37
  • 提问者 宝慕林6589715 回复 rustgopy #3
    谢谢老师,问题果然解决了! 但为什么在你的视频里不需要添加这个判断也能成功呢? 能否简单解释一下,谢谢!
    回复 有任何疑惑可以回复我~ 2017-08-09 15:56:46
提问者 宝慕林6589715 2017-08-09 15:15:13

这是我的视图函数 tag_list 的截图:

https://img1.sycdn.imooc.com/szimg//598ab67d0001b62d06430172.jpg


0 回复 有任何疑惑可以回复我~
提问者 宝慕林6589715 2017-08-09 15:04:10

老师,以下分别是admin_page.html 和 tag_list的截图:


https://img1.sycdn.imooc.com/szimg//598ab3e20001d60307730520.jpg

https://img1.sycdn.imooc.com/szimg//598ab3e20001b6c507980481.jpg


0 回复 有任何疑惑可以回复我~
提问者 宝慕林6589715 2017-08-09 15:01:24

老师,我再次测试了一下,发现如果访问以下 第3页,第4页,第5页不会有以上报错,但访问其他页就会有这个报错。从数据库来看, tag 表 目前有9个记录,按道理我可以访问1~9页。 是否哪里出错了? 我的确是按照你的视频一个字一个字写进去的。


https://img1.sycdn.imooc.com/szimg//598ab31b0001493103500248.jpg

https://img1.sycdn.imooc.com/szimg//598ab31c0001b64311050223.jpg


0 回复 有任何疑惑可以回复我~
rustgopy 2017-08-09 14:44:41

同学,你检查模板是否哪里未传入page参数

0 回复 有任何疑惑可以回复我~
  • 提问者 宝慕林6589715 #1
    老师,请问你是指哪个模板? 以下是我的 admin_page.html 
    
    {% macro page(data, url) %}
        {% if data %}
            <ul class="pagination pagination-sm no-margin pull-right">
                <li><a href="{{ url_for(url, page=1) }}">首页</a></li>
                {% if data.has_prev %}
                    <li><a href="{{ url_for(url, page=data.prev_num) }}">上一页</a></li>
                {% else %}
                    <li class="disabled"><a href="#">上一页</a></li>
                {% endif %}
    
                {% for item in data.iter_pages() %}
                    {% if item == data.page %}
                        <li class="active"><a href="#">{{ item }}</a></li>
                    {% else %}
                        <li><a href="{{ url_for(url, page=item) }}">{{ item }}</a></li>
                    {% endif %}
                {% endfor %}
    
                {% if data.has_next %}
                    <li><a href="{{ url_for(url, page=data.next_num) }}">下一页</a></li>
                {% else %}
                    <li class="disabled"><a href="#">下一页</a></li>
                {% endif %}
                <li><a href="{{ url_for(url, page=data.pages) }}">尾页</a></li>
            </ul>
        {% endif %}
    {% endmacro %}
    回复 有任何疑惑可以回复我~ 2017-08-09 14:54:40
  • rustgopy 回复 提问者 宝慕林6589715 #2
    这样,你把tag_list.html和admin_page.html的截图发给我看看!
    回复 有任何疑惑可以回复我~ 2017-08-09 15:00:04
  • 提问者 宝慕林6589715 回复 rustgopy #3
    老师,截图发出来了,请帮忙看看,谢谢
    回复 有任何疑惑可以回复我~ 2017-08-09 15:08:20
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号