Python Flask 分页仅提交最后一页

标签 python flask pagination flask-sqlalchemy

我有一个 sqlalchemy 查询,它呈现一个带有几个设置的模板。

下面您可以找到非常简化的代码来了解正在发生的事情。这段代码在每个页面上放置一个设置的复选框字段,目前没有固定的设置数量,这取决于表格的大小。就分页而言,这工作得很好。我可以转到下一页和上一页。

页面上的提交按钮仅发布最后一页的复选框值。是否还可以记住和/或保存所有页面的输入,而不仅仅是最后一页?

@app.route('/settings')
def settings():

page = request.args.get('page', 1, type=int)
settings = Settings.query.paginate(page, 1, False)

next_url = url_for('settings', page=settings.next_num) \
    if settings.has_next else None

prev_url = url_for('settings', page=settings.prev_num) \
    if settings.has_prev else None

inputtype = 'checkbox'

return render_template("settings.html", 
            settings = settings,
            inputtype = inputtype,
            next_url = next_url, 
            prev_url = prev_url
            )

模板应该是这样的。

<div class="form-check">
{% for setting in settings %}                    
<input type="{{ inputtype  }}" value="{{ setting }}" {{ setting }}  
{% endfor %}   
<div class=pagination>
{% if prev_url %}
<a href=" {{ prev_url }} "> Previous </a>
(% endif %}
{% if next_url %}
<a href=" {{ next_url }} "> Next </a>
{% endif %}
</div>
<div class="panel-footer">
<input class="btn btn-primary" role="button" type="submit" value="Submit">
</div>

最佳答案

我的感觉是,如果您提交,您只会提交当前页面上的设置。页面上只有当前设置,将所有设置添加到页面上没有多大意义。

我认为,如果您使用链接来访问上一个和下一个设置,则在多个页面上不可能实现您想要的效果。 如果您在第 1 页上进行更改,然后单击“下一步”,则第 1 页上所做的更改不会保存在任何地方,因此它们会丢失。

也许可以将上一个和下一个也发布到设置中。通过这种方式,您可以从该页面获取设置,并可以创建一个临时设置对象,您可以在单击“提交”时处理该对象。

关于Python Flask 分页仅提交最后一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49339600/

相关文章:

python - YouTube API社区数据用户名

java - 开发 Android GIS 应用程序 : Java or Python?

python - Flask 套接字 IO 值错误

session - 缺少 Flask WTF CSRF session token ,找不到 secret_key

python - Flask:获取当前路线

php - CodeIgniter:项目分页

python - 变量的文档字符串

python-如何从文本文件中删除一行?

jQuery JQGrid 分页事件

jquery - jQuery 分页 Wordpress 小部件后 Dom Css 丢失