서버
를 만들고 자바스크립트
를 이용하여 만드는 웹페이지 !
파이썬 파일과 html 파일 이렇게 두 개를 왔다 갔다 하면서 하다 보니 쪼꼼 정신이 없었지만 또 새로운 것을 배웠던 4주차였다 ! 🥹
이번 4주차 숙제 ! 서버와 메인 페이지 파일을 왔다 갔다 하며 POST와 GET으로 나뉜 부분들을 잘 정리하는 것이 관건이다 🤨
get은 클라이언트에서 서버로 어떠한 리소스로부터의 정보를
요청
하기 위해 사용하는 메서드이다. 우리가 구글에서 검색 버튼을 누르는 것, 게시판의 게시물을 조회하는 것 등이 모두 get 요청이다.
post는 클라이언트에서 서버로 리소스를
생성
하거나업데이트
목적으로 데이터를 보낼 때 사용되는 메서드이다. 우리가 게시판에 게시글을 작성하면 게시판 글 목록에 내가 쓴 글이 추가되는 것 등이 post 요청이다.
일단 2주차 숙제에 이어서 만드니까 숙제 코드 꺼내주고 !
서버를 만드는 코드는 이렇다.
@app.route
로 시작하는 모든 부분들이 일종의 창구라고 생각하면 된다 ! 저 부분에 get요청, post 요청이 들어가며, 주로 실행할 함수가 포함된다.
port
를 5000번으로 해놨기 때문에, 서버 실행 후
localhost:5000
이 주소로 들어가보자 그럼 이렇게 웹페이지가 나오는데 오늘 할 것은 주문 정보를 입력한 후 주문하기 버튼을 누르면 밑 테이블에 주문 정보가 차례대로 붙는 작업이다.
📁 app.py
- 먼저 '주문하기' 버튼을 누르면 정보가 테이블에 붙어야 하므로 post 요청
으로 해야 한다.
📁 index.html
- '주문하기' 버튼을 눌렀을 때 실행될 order() 함수이다. 똑같이 type은 "post"
, url은 창구에 적혀 있는 "/order"
로 하며, response가 성공적으로 되었을 때 정해진 메시지 창이 띄워지도록 했다.
그리고 페이지를 다시 읽는
window.location.reload();
코드를 추가했다.
다시 📁 app.py
!
웹페이지의 각 입력 칸들마다 입력되는 데이터를 받는 변수를 설정해주고, 이를 딕셔너리(doc)로 만들어서 데이터베이스의 orders 파일에 넣어주었다.
📁 index.html
- 표시한 부분처럼 각 입력 칸마다 id를 먹여서 input 타입을 통해 받은 값을 jquery
를 이용해 새로운 변수에 넣는다.
그리고 표시될 데이터에 위 변수들을 딕셔너리 형태로 넣어주기 !
여기까지 하면 입력 받은 데이터를 넘겨주는 것까진 완료다 !
데이터를 입력한 후 '주문하기' 버튼을 눌렀을 때 데이터가 잘 들어왔는지 데이터 베이스에 가서 확인해보는 것은 필수다 ✨
📁 index.html
- 이제 받은 주문 정보를 웹페이지 하단에 붙여볼 것이다 ! 페이지가 로딩 되자마자 정보가 리스팅되어야 하므로 listing() 함수를 선언하겠다.
✋🏻 코드 설명 !
orders = list(db.orders.find({}, {'_id' : False}))
orders
파일에서 id 값은 제외하고 출력({'_id' : False}
)하며, 조건 없이({ }) 모든 값을 가져와 list해서 변수 orders에 넣는다.📁 index.html
✋🏻 코드 설명 !
get
으로, url은 주문 목록 보기 창구의 주소인 '/order'
로 한다. data는 넣지 않는다.📁 app.py
에서 list한 정보를 가져와 변수 orders
에 넣어준다.temp_html
이라는 변수에 넣어준다.jquery
를 이용하여 ${변수명}
형태로 필요한 자리에 값들을 넣어주면 끝 !"orders-box"
라고 했기 때문에, 이는 for문을 돌면서 temp_html
을 한 줄씩 붙이라는 코드이다.$('#orders-box').append(temp_html)
Jquery
란 ?
자바스크립트(javascript)를 기반으로 만들어진 라이브러리 !