老师,这个分页有BUG

来源:10-3 .电影搜索-搜索分页

戴晶kyle

2017-12-20

当搜索“死”字的时候(假设有两条记录),第一条记录url:http://127.0.0.1:5000/search/1/?key=%E6%AD%BB;

此时点击下一页,应该跳转到http://127.0.0.1:5000/search/2/?key=%E6%AD%BB,然而老师的方法实际是跳转到http://127.0.0.1:5000/search/2/,并不对应,请问该如何解决?

电影搜索
@home.route('/search/<int:page>/')
@user_login_req
def search(page=None):
    if page is None:
        page=1
    key=request.args.get('key','')
    movie_count=Movie.query.filter( Movie.title.ilike('%'+key+'%')).count()
    page_data=Movie.query.filter(
        Movie.title.ilike('%'+key+'%')
    ).order_by(Movie.addtime.desc()).paginate(page=page,per_page=1)
    return render_template('home/search.html',key=key,page_data=page_data,movie_count=movie_count)
{% extends 'home/home.html' %}
{% import 'ui/home_page.html' as pg %}

{% block content %}
<div class="row">
    <div class="col-md-12">
        <ol class="breadcrumb" style="margin-top:6px;">
            <li>与"{{key}}"有关的电影,共{{movie_count}}部</li>
        </ol>
    </div>
    <div class="col-md-12">
        {% for v in page_data.items %}
        <div class="media">
            <div class="media-left">
                <a href="play.html">
                    <img class="media-object" style="width:131px;height:83px" src="{{url_for('static',filename='uploads/')+v.logo}}" alt="{{v.title}}">
                </a>
            </div>
            <div class="media-body">
                <h4 class="media-heading">{{v.title}}<a href="{{url_for('home.play')}}"
                                                        class="label label-primary pull-right"><span
                        class="glyphicon glyphicon-play"></span>播放影片</a></h4>
                {{v.info}}
            </div>
        </div>
        {% endfor %}

    </div>
    <div class="col-md-12 text-center">
        {{pg.page(page_data,'home.search')}}
    </div>
</div>
{% endblock %}


写回答

1回答

rustgopy

2017-12-25

同学,你好,这是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
1
SuperDi
老师问题都没看明白就答,答非所问
2018-12-11
共1条回复

Python Flask 构建微电影视频网站

Python 最好用轻量级框架,让你轻松胜任 Python Web 工程师

683 学习 · 663 问题

查看课程