1주차 프로젝트 후기

송민지·2022년 5월 12일
0

항해99

목록 보기
2/5

1주차 프로젝트가 끝났다.

내가 맡은 부분은 '메인페이지 보여주기', '좋아요' 부분이였다.

결론적으로 '좋아요'는 구현하지 못했다.

메인페이지는 python으로 서버를 만들어서 Jinja2 템플릿을 이용해 서버사이드 랜더링 이해하는데 시간이 오래 걸려서(...) 그리고 div, p, input, textarea태그를 이용해 뼈대를 세워야 했는데, 그게 어려웠다.

결국 다른 팀원이 만들어 놓은 틀을 사용하여 jinja2를 이용한 렌더링에 성공했다!!

해보고 나니 생각보다 쉬운데, 왜 서버로 렌더링이 안됐는지 이해가 안된다.

@app.route('/')
def main():
    token_receive = request.cookies.get('mytoken')
    try:
        payload = jwt.decode(token_receive, SECRET_KEY, algorithms=['HS256'])
        user_info = db.users.find_one({'username': payload['id']})
        blog_infos = list(db.blogs.find())
        count_list = []
        for blog_info in blog_infos:
            comment_list = blog_info['comments']
            count_list.append(len(comment_list))
        return render_template('mainpage.html', id=user_info['username'], count_list=count_list, blog_infos=blog_infos)

    except jwt.ExpiredSignatureError:
        return redirect(url_for("login", msg="로그인 시간이 만료되었습니다."))
    except jwt.exceptions.DecodeError:
        return redirect(url_for("login", msg="로그인 정보가 존재하지 않습니다."))

팀원이 수정해준 app.py main서버 부분이다.
서버사이드 렌더링을 어떻게 할지 몰라 헤메고 있을 때, 많이 도움을 받았다.

payload에서 오류나서 고생을 많이 했는데 그래도 하고 나니 뿌듯하다.

레이아웃도 깔끔하다는 평가가 나와서 한숨 돌렸다.

css는 팀원분이 해줬다.. 헤더와 본문은 내가 만들었다 헤헿

주말엔 jwt와 jinja2, 서버사이드 렌더링에 대해 정리할 예정이다.

profile
기록하는 일상

0개의 댓글