使用 Python 从 0 开发属于你的个人管理系统 16 篇 | 计划数据的获取与展示

现在你已经完成了任务创建的功能了,接下来你就可以写获取数据的接口,然后渲染到网页中去。也就是说,定义路由方法,在这里根据传入的用户 id,在数据库中获取相关的任务列表数据,然后返回给前端页面。

如何获取任务列表数据呢?

上次我们在建立数据模型的时候,已经将用户表和 todo 表进行了关联:

todos = db.relationship("Todo", backref='my_user')

那么现在只要通过条件查询就可以获取该用户下的任务数据。


@app.route('/todolist/', methods=['GET'])
def todolist():
    user = User.query.filter_by(id=session['user_id']).first_or_404()

这里通过用户 id 查询用户数据,那么现在这个 user 对象的 todos 就是该用户的任务列表数据。

我们可以将得到的 user 下的任务返回给 todolist.html:

return render_template('todolist.html', form=todo_form, todolist=user.todos)

接着,我们在 html 循环渲染列表数据就可以了:


 {% for todo in todolist %}
        <!-- Earnings (Monthly) Card Example -->
        <div class="col-xl-8 mx-auto mb-3">
            <div class="card border-left-primary shadow h-100 py-2">
                <div class="card-body">
                    <div class="row no-gutters align-items-center">
                        <div class="col">
                            <div class="h5 mb-0 font-weight-bold text-gray-800">{{ todo.description }}</div>
                        </div>
                        <div class="col-auto">
                            <input type="checkbox" class="btn-check" id="btn-check-outlined" autocomplete="off">
                        </div>
                    </div>
                </div>
            </div>
        </div>
{% endfor %}

现在我们可以先往数据库添加一些数据:

接着我们来运行下项目,登录进入系统,打开任务列表页面,可以看到数据展示出来了:

因为我们的任务创建功能已经实现,我们可以在这里继续创建任务:

数据库中存储了

本文隐藏内容 登陆 后才可以浏览
就可以实现数据分别展示了:

那么当数据有很多的时候应该如何处理呢?有没有更好的数据获取方式?以及点击完成功能如何实现?

我们下篇见,peace!

2 Replies to “使用 Python 从 0 开发属于你的个人管理系统 16 篇 | 计划数据的获取与展示”

  1. tao说道:

    任务列表和菜单栏没在同一页面,要下滑才看得到,todolist.html要怎么改呢?

    1. 小帅b说道:

      不是很明白你要问的问题,可以说的详细一点

发表回复