12.4.5 日记列表

首先在sql.py文件增加读取所有日记的函数:
def find_diaries():
    conn = get_conn()
    cursor = conn.cursor()
    sql1 = "select * from diary"
    #cursor.execute(sql1,(username))
    cursor.execute((sql1))
    result = cursor.fetchall()
    #print(result)
    conn.close()#关闭连接
    return result

然后是编写HTML模板文件diaries.html:
<!DOCTYPE html>
<html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>
    日记列表
    </title>
    </head>
    <body>
        {%for t in diaries%}
        <div style="border-bottom: 1px solid #ccc;width:300px">
            <h3>{{t[1]}}</h3>
            <div>
                {{t[2]}}
            </div>
            <div>
                {{t[3]}}
            </div>
        </div>
        {%end for%}
    </body>
</html>
这个页面需要diaries参数,是日记列表
最后是绑定html和url模式,在app.py文件里增加这一个绑定:
@app 
 .route('/diaries')
def diaries():
    d = sql.find_diaries()
    d = list(d)  #d=tuple(d)
    return render_template("diaries.html", diaries=d)
d=list(d)是把取出来的数据转变成列表(也可以使用tuple转变成元组)

登录后就应该跳转到此页面,但此时应该跳转到/diaries,而不是diaries.html页面。那么应该怎么修改呢?
@app 
 .route('/login')
def login():
    username = request.args.get('username')
    password = request.args.get('psw')
    result = sql.find_user(username)
    print("======================================")
    print(result)
    if result is not None and username == result[0] and password == result[1]:
        return redirect('/diaries')
    else:
        response = make_response("登录失败")
    return response

登录处理函数其实只修改了第13行,redirect函数跳转到指定url