老师,这个分页有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 %}012018-12-11
相似问题