공부하자/웹개발일지

[웹개발일지] #8. Flask 사용, mini_project_1. 모두의 책리뷰

snbrin 2022. 3. 10. 14:22

 

 

풀스택 웹개발 공부 기록하기 #8.

 

😉Flask  프레임워크를 활용하여 서버 만들기😉

 

https://github.com/janghr1225/bookreview_page

 

GitHub - janghr1225/bookreview_page: 책리뷰 프로젝트

책리뷰 프로젝트. Contribute to janghr1225/bookreview_page development by creating an account on GitHub.

github.com

 


 

💾 Flask 사용

서버를 구동시켜주는 코드 모음이라고 생각해도 ok

파이참에서 flask 패키지 설치 후 사용할 수 있음

app.py로 flask 서버를 돌리는 파일 지정하기

터미널 창 클릭하고 ctrl + c 누르면 서버 종료

 

flask 서버를 만들 때는 항상

프로젝트 폴더 안에 

static폴더(이미지, css파일 넣음)

templates폴더(html파일 넣음)

app.py파일

이렇게 3가지를 항상 만들고 시작하기!!

※ venv 파일은 무시

 

 

!! GET & POST 방식 !!

 

GET POST
데이터 조회(Read) : 영화 목록 조회 데이터 생성(create), 변경(update), 삭제(delete) : 회원가입, 탈퇴, 비밀번호 수정
데이터 전달 : url뒤에 물음표를 붙여 
key = value 로 전달
ex) google.com?q=북극곰
데이터 전달 : 바로 보이지 않는
HTML body에 key:value 형태로 전달

 

GET 요청 API코드

@app.route('/test', methods=['GET'])
def test_get():
   title_receive = request.args.get('title_give')
   print(title_receive)
   return jsonify({'result':'success', 'msg': '이 요청은 GET!'})

GET 요청 확인 Ajax코드

$.ajax({
    type: "GET",
    url: "/test?title_give=봄날은간다",
    data: {},
    success: function(response){
       console.log(response)
    }
  })

 

POST 요청 API코드

@app.route('/test', methods=['POST'])
def test_post():
   title_receive = request.form['title_give']
   print(title_receive)
   return jsonify({'result':'success', 'msg': '이 요청은 POST!'})

POST 요청 확인 Ajax코드

$.ajax({
    type: "POST",
    url: "/test",
    data: { title_give:'봄날은간다' },
    success: function(response){
       console.log(response)
    }
  })

 

 


 

 

💻 No.1 book_review 💻

 

👉읽은 책의 제목, 저자, 리뷰에 대해 작성하고

'리뷰 작성하기' 버튼을 누르면 아래 리스트에 저장되어 나타남!

 

여기서 상기해야할 것은?

👉API 만들기

👉 제목, 저자, 리뷰 정보 저장하기(create -> POST)

 API 기능 3가지

1. 클라이언트가 준 title, author, review 가져오기

2. DB에 정보 삽입하기

3. 성공 여부 & 성공 메시지 반환하기

 

 클라이언트 코드 3단계

1. input에 title, author, review 가져오기

2. 입력값이 하나라도 없을 때 alert 띄우기

3. Ajax로 서버에 저장 요청하고, 화면 다시 로딩하기

 

👉 저장된 리뷰를 화면에 보여주기(read -> GET)

응답 데이터 JSON형식 'all_reviews'=리뷰리스트

api기능

1. DB에서 리뷰 정보 모두 가져오기

2. 성공 여부 & 리뷰 목록 반환하기

 

클라이언트 코드 3단계

1. 리뷰 목록을 서버에 요청하기

2. 요청 성공 여부 확인하기

3. 요청 성공했을 때 리뷰를 올바르게 화면에 나타내기

 

👉 DB 저장 방식

 

html 화면
robo 3T - DB 저장 확인

 

app.py
0.00MB
index.html
0.00MB