Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 冻结瓶分页链接不';不要加载新页面_Python_Html_Flask_Pagination_Jinja2 - Fatal编程技术网

Python 冻结瓶分页链接不';不要加载新页面

Python 冻结瓶分页链接不';不要加载新页面,python,html,flask,pagination,jinja2,Python,Html,Flask,Pagination,Jinja2,我试图用冻结的Flask冻结我的Flask博客应用程序,但问题是冻结()后我无法使分页正常工作 我正在使用应用程序工厂模式。 以下是我的main.routes.py: @bp.route(“/home”) @bp.route(“/index”) @bp.route(“/”) def索引(form=None,methods=['GET','POST']): 最新职位=加载最新职位(10) 使用db_会话(autocommit=False): 页码=1 posts=加载所有posts()。分页(第

我试图用冻结的Flask冻结我的Flask博客应用程序,但问题是冻结()后我无法使分页正常工作

我正在使用应用程序工厂模式。 以下是我的main.routes.py:


@bp.route(“/home”)
@bp.route(“/index”)
@bp.route(“/”)
def索引(form=None,methods=['GET','POST']):
最新职位=加载最新职位(10)
使用db_会话(autocommit=False):
页码=1
posts=加载所有posts()。分页(第10页,错误)
next\u url=url\u for('main.index',page=posts.next\u num)\
如果posts.has_next-else无
prev\u url=url\u for('main.index',page=posts.prev\u num)\
如果posts.has_prev else无
如果当前用户为匿名用户:
返回呈现模板('main/index.html',title='Home',posts=posts,
上一个url=上一个url,下一个url=下一个url,最近的帖子=最近的帖子)
load\u all\u posts()
执行命令,返回
Post.query.order\u by(Post.pub\u date.desc())

load\u latest\u posts(n)
基本相同,但获取最新的
(n)
posts

如您所见,我正在将
pagination
对象传递给
posts
,我在
main/index.html
模板中使用它来呈现分页项目:

{%extends'base.html%}
{%block posts\u preview%}
{posts.items%}
{%include'posts/_post.html%}
{%endfor%}
{%endblock posts_preview%}
{%block footer%}
    {%if prev_url%}
  • {%endif%} {posts.iter_页面中的页数为%(左_边=1,右_边=1,左_边=2,右_边=3)%} {%if page_num%} {%if posts.page==page_num%}
  • {%else%}
  • {%endif%} {%else%} ... {%endif%} {%endfor%} {%if next_url%}
  • {%endif%}
{%endblock footer%}
\u post.html
不是什么新奇的东西,只是另一个包含post结构的模板

如果我在烧瓶里运行这个,它会正常工作。当使用冻结烧瓶生成静态站点时,页码在那里,但单击它们不会将我重定向到任何地方。我看到URL正在从
http://127.0.0.1:5000/
http://127.0.0.1:5000/?page=2
但新内容不会加载,只会刷新当前页面

这里可能有什么问题?如何正确加载页面和分页?

根据:

从URL中删除查询字符串以生成文件名。例如
/lorem/?page=ipsum
保存到
lorem/index.html
。仅限于 不同的查询字符串被认为是相同的,并且 应该返回相同的响应。否则,行为是未定义的

这意味着,不幸的是,
http://127.0.0.1:5000/
http://127.0.0.1:5000/?page=2
将引用完全相同的页面。要使分页正常工作,您需要确保页码是查询字符串之前URL的一部分,类似于
http://127.0.0.1:5000/page2/

根据:

从URL中删除查询字符串以生成文件名。例如
/lorem/?page=ipsum
保存到
lorem/index.html
。仅限于 不同的查询字符串被认为是相同的,并且 应该返回相同的响应。否则,行为是未定义的


这意味着,不幸的是,
http://127.0.0.1:5000/
http://127.0.0.1:5000/?page=2
将引用完全相同的页面。要使分页正常工作,您需要确保页码是查询字符串之前URL的一部分,类似于
http://127.0.0.1:5000/page2/

能否请您详细说明,我如何将分页链接更改为
http://127.0.0.1:5000/page2/
?提前谢谢!我找到了一种从页面URL中删除查询字符串的方法:我将main.routes.py>main route编辑为
@bp.route('/index/',methods=['GET',POST'])
,并使用
def index(page=1)传递默认页码:
(否则它在索引上会失败)。这个解决方案对我有效。所以我将此标记为答案。请您详细说明,我如何将分页链接更改为
http://127.0.0.1:5000/page2/
?提前谢谢!我找到了一种从页面URL中删除查询字符串的方法:我将main.routes.py>main route编辑为
@bp.route('/index/',methods=['GET',POST'])
,并使用
def index(page=1)传递默认页码:
(否则它在索引上会失败)。这个解决方案对我有效。所以我把这个标记为答案。