csr 자바스크립에 데이터를 포함해서 보낸 후, 클라이언트 쪽에서 html을 완성하는 방법 ssr 서버 쪽에서 템플릿 html에 데이터를 끼워 넣어 완성된 형태의 html을 보내주는 방법
-> jinja2 템플릿 언어, 템플릿이 되는 html문서에 데이터가 들어갈 곳을 표시해놓는 역할
복합적인 방법 클라이언트 쪽에서 ajax 요청을 보내서 서버에서 데이터를 받아와 html을 완성하는 방법
3. 페이지 이동 방법
- 서버 코드
@app. route('/') / < 주소 값 def main(): return render_template("index.html") < html 불러오기
- 클라이언트 코드
a 태그 사용 시에는 파이썬과 동일한 주소 값만 입력해주면 된다. <a href="/detail"> 상세페이지로 가기 </a>
버튼 사용 시에는 onclick을 이용해서 window.location.href 에 주소 값을 넣어주면 된다. <button onclick="window.location.href='/'"> 메인으로 돌아가기 </button>
4.jinja2 템플릿 언어 설정
5. jinja2 템플릿 사용법 알기
서버 쪽에서 예를 들면 myname 이란 변수에 내용을 넣고, html로 전달하고 싶을 때, return 부분에 myname 값을 넣어서 전달할 수 있다. name에 myname의 값을 담아서 전달했다면, html에서 서버 쪽 데이터를 받아오는 방법은 {{값}} 이렇게 하면 불러올 수 있다.
$.ajax({ type: "GET", url: "https://owlbot.info/api/v4/dictionary/owl", beforeSend: function (xhr) { xhr.setRequestHeader("Authorization", "Token [내토큰]"); 요청을 보내기 전에 이거를 먼저 해라. 이건 헤더 정보를 보내라.
}, data: {}, error: function (xhr, status, error) { alert("에러 발생!"); 부가기능 에러가 발생해서 정보를 가져오지 못할 경우 에러를 발생시켜라 }, success: function (response) { console.log(response) } })
14. api 를 활용해서 ajax와 jinja 비교
- Ajax
- jinja
ajax 요청을 보내서 사전 api 데이터를 받아오고 채워 넣는데 시간이 걸리기 때문에, 한번 페이지를 띄운 후, 바뀔 일이 없는 부분에 대해서는 jinja같은 템플릿 언어를 이용해서 html을 완성해서 보내주는 서버사이드 렌더링을 해주는 것이 좋다. 속도도 더 빨라진다.
15.jinja 사용 시 확인, {{}}을 이용해서 서버값을 받을 때 두 가지 형태로 사용이 가능하다
16.jinja if문 사용 시 None 같은 경우는 안 넣고 사용을 해도 값이 있을 때만 True로 판정을 한다.
17.jinja 문법 |safe는 들어오는 값이 html문서일 수도 있는데 그걸 그대로 표시하게 해주는 의미이다.
encode('ascii','ignore').decode('utf-8')는 문자열을 아스키코드 형태로 인코딩해주고 바꿀 수 없는 것은 무시하고, 그 후에 다시 문자열로 변경한다. 이상한 문자들을 없애는 방법이다.
18. 튜터님의 조언
오늘 2차 프로젝트 계획 제출 후, 튜터님의 방문이 있었다.
프로젝트 진행 시 몽고 db를 어떻게 나눠서 하면 좋을지에 대해서 고민을 했었는데, 튜터님의 조언을 듣고 컬렉션을 나누어서 로그인을 관리하면 좋을 것 같다는 생각이 들었다.
그리고 파이썬 작업 시 노란 밑줄 문제가 발생 관련해서 자료는 pep8 홈페이지 들어가서 보았지만 자료가 너무 길고 해서 질문을 하였다.
이렇게 나올 때 Reformat the file를 클릭하면 해결이 되는 것을 볼 수 있다.
구글에 PEP8을 검색하면 내용이 나오기 때문에 읽어보면 좋다고 하셨다.
그리고 지금 코딩을 공부하면서 불안한 요소들이 많이 있었다. 올바르게 하고 있는 게 맞는 것일까?
백지상태일 때의 코드 작성의 두려움, 그리고 구글링을 통해서 코드 응용을 하고 있는데 맞는 것인가에 대한 것들.
튜터님은 완벽한 개발자는 없다고 하셨다. 그리고 캠프가 끝난 후에도 빈 화면에 대한 두려움은 있을 것이다라고 말씀하셨다. 그러나 프로젝트를 통해서 새로운 것을 구현하며, 만들 수 있는 사람이 될 수 있다고는 해주셨다.
현재 내가 제대로 하는 건지 항상 고민이 되었는데, 오류를 해결하는 부분들도 그렇고 지금처럼 계속 진행해보면 될 것 같다. 그리고 지금 강의를 들으며 배우고 있지만, 왜 S3를 쓰는지? jwt는 왜 쓸까? 이런 것에 대해서 제대로 알지 못하였다. 튜터님은 스터디를 해보면서 저런 부분의 개념들도 알아가는 것이 좋다고 말씀해주셨다. 스터디를 하며 서로가 하나씩 정보를 발표하는 식으로 하면 좋다고 해주셨다. 튜터님이 말씀해주신 내용들을 참고해서 앞으로 남은 시간 동안 더 효율적으로 성장할 수 있도록 만들어야겠다.