Ejemplo n.º 1
0
def todo__del(request):
    uname = current_user(request)
    u = User.find_by(username=uname)
    if u is None:
        return redirect('/login')
    todo_id = int(request.query.get('id', -1))
    t = Todo.find_by(id=todo_id)
    if t.user_id != u.id:
        return redirect('/login')
    if t is not None:
        t.remove()
    return redirect('/todo')
Ejemplo n.º 2
0
def add(request):
    """
    用于增加新的todo的路由函数
    """
    uname = current_user(request)
    u = User.find_by(username=uname)
    headers = {
        'Content-Type': 'text/html',
    }
    if request.method == 'POST':
        form = request.form()
        t = Todo.new(form)
        t.user_id = u.id
        t.save()
    return redirect('/todo')
Ejemplo n.º 3
0
def todo_show(request):
    headers = {
        'Content-Type': 'text/html',
    }
    uname = current_user(request)
    u = User.find_by(username=uname)
    if u is None:
        return redirect('/login')
    todo_id = int(request.query.get('id', -1))
    # 通过id查找整个字典
    t = Todo.find_by(id=todo_id)
    # 别的用户不能删除别人的微博
    if t.user_id != u.id:
        return redirect('/login')
    body = template('todo_edit.html')
    body = body.replace('{{todo_id}}', str(t.id))
    body = body.replace('{{todo_title}}', str(t.title))
    header = with_response_headers(headers)
    r = header + '\r\n' + body
    return r.encode('utf-8')
Ejemplo n.º 4
0
def index(request):
    headers = {
        'Content-Type': 'text/html',
    }
    # 找到当前登录的用户, 如果没登录, 就 redirect 到 /login
    uname = current_user(request)
    u = User.find_by(username=uname)
    if u is None:
        return redirect('/login')
    todo_list = Todo.find_all(user_id=u.id)
    todos = []
    for t in todo_list:
        link = '<a href="/todo/show?id={}">编辑</a>'.format(t.id)
        todo_del = '<a href="/todo/del?id={}">删除</a>'.format(t.id)
        s = ''.join('<h3>{} : {} {} {}</h3>'.format(t.id, t.title, link, todo_del))
        todos.append(s)
    todo_html = ''.join(todos)
    body = template('todo_index.html')
    body = body.replace('{{todos}}', todo_html)
    header = with_response_headers(headers)
    r = header + '\r\n' + body
    return r.encode(encoding='utf-8')
Ejemplo n.º 5
0
 def f(request):
     uname = current_user(request)
     u = User.find_by(username=uname)
     if u is None:
         return request('/login')
     return route_function(request)