Python 烧瓶中的分页不起作用

Python 烧瓶中的分页不起作用,python,pagination,flask,flask-sqlalchemy,Python,Pagination,Flask,Flask Sqlalchemy,我有一个看法: @app.route('/', methods=['GET', 'POST']) @app.route('/index', methods=['GET', 'POST']) @app.route('/index/<int:page>', methods=['GET', 'POST']) def index(page=1): posts = Post.query.paginate(page, 3, False).items return render_t

我有一个看法:

@app.route('/', methods=['GET', 'POST'])
@app.route('/index', methods=['GET', 'POST'])
@app.route('/index/<int:page>', methods=['GET', 'POST'])
def index(page=1):
    posts = Post.query.paginate(page, 3, False).items
    return render_template('index.html', posts=posts)
@app.route('/',方法=['GET','POST'])
@app.route('/index',方法=['GET',POST'])
@app.route('/index/',方法=['GET','POST'])
def索引(第1页):
posts=Post.query.paginate(第3页,False).items
返回呈现模板('index.html',posts=posts)
代码模板:

    {% if posts %}
    <ol>
    {% for post in posts %}
        <li>{{ post.title }}</li>  | {{ post.text }} | {{ post.time }}</li>
    {% endfor %}
    </ol>
    {% else %}
    <h2>There is no posts</h2>
    {% endif %}

    {% if posts.has_prev %}<a href="{{ url_for('index', page=posts.prev_num) }}"><< Newer posts</a>{% else %}<< Newer posts{% endif %} |
    {% if posts.has_next %}<a href="{{ url_for('index', page=posts.next_num) }}">Older posts >></a>{% else %}Older posts >>{% endif %}
{%if posts%}
{posts%%中的post为%s}
  • {{post.title}
  • {{post.text}}}{post.time}} {%endfor%} {%else%} 没有职位 {%endif%} {%if posts.has_prev%}{%else%}较旧的posts>{%endif%}

    问题是,它不会为我生成一个链接以查看更多帖子。

    .has\u prev
    。has\u next
    是的属性,但您正在放弃该实例。传递到视图中的所有内容都是
    分页.items
    属性。然后您仍试图访问项目列表中的
    。has_prev
    。has_next
    属性,而这些属性不存在,因此Jinja2将这些属性解析为未定义

    传入
    分页
    实例:

    posts = Post.query.paginate(page, 3, False)
    return render_template('index.html', posts=posts)
    
    并调整模板:

        {% if posts %}
        <ol>
        {% for post in posts %}
            <li>{{ post.title }}</li>  | {{ post.text }} | {{ post.time }}</li>
        {% endfor %}
        </ol>
        {% else %}
        <h2>There is no posts</h2>
        {% endif %}
    
        {% if posts.has_prev %}<a href="{{ url_for('index', page=posts.prev_num) }}"><< Newer posts</a>{% else %}<< Newer posts{% endif %} |
        {% if posts.has_next %}<a href="{{ url_for('index', page=posts.next_num) }}">Older posts >></a>{% else %}Older posts >>{% endif %}
    
    {%if posts.items%}
    {posts.items%}
    
  • {{post.title}
  • {{post.text}}}{post.time}} {%endfor%} {%else%} 没有职位 {%endif%} {%if posts.has_prev%}{%else%}较旧的posts>{%endif%}
    .has\u prev
    .has\u next
    是的属性,但您将丢弃该实例。传递到视图中的所有内容都是
    分页.items
    属性。然后您仍试图访问项目列表中的
    。has_prev
    。has_next
    属性,而这些属性不存在,因此Jinja2将这些属性解析为未定义

    传入
    分页
    实例:

    posts = Post.query.paginate(page, 3, False)
    return render_template('index.html', posts=posts)
    
    并调整模板:

        {% if posts %}
        <ol>
        {% for post in posts %}
            <li>{{ post.title }}</li>  | {{ post.text }} | {{ post.time }}</li>
        {% endfor %}
        </ol>
        {% else %}
        <h2>There is no posts</h2>
        {% endif %}
    
        {% if posts.has_prev %}<a href="{{ url_for('index', page=posts.prev_num) }}"><< Newer posts</a>{% else %}<< Newer posts{% endif %} |
        {% if posts.has_next %}<a href="{{ url_for('index', page=posts.next_num) }}">Older posts >></a>{% else %}Older posts >>{% endif %}
    
    {%if posts.items%}
    {posts.items%}
    
  • {{post.title}
  • {{post.text}}}{post.time}} {%endfor%} {%else%} 没有职位 {%endif%} {%if posts.has_prev%}{%else%}较旧的posts>{%endif%}