본문 바로가기
공부/sparta

4주차 정리

by 취미취미 2021. 10. 12.
반응형

Flask 프레임워크 : 서버 구동 시켜주는 편한 코드모음

 

더보기
더보기

@app.route('/) 부분을 수정하여 URL을 나눌 수 있습니다!

** url 별로 함수명이 같거나, route('/')내의 주소가 같으면 안됩니다.

from flask import Flask
app = Flask(__name__)

# URL 별로 함수명이 같거나,
# route('/')등의 주소가 같으면 안된다.

@app.route('/')
def home():
   return 'This is Home!'

@app.route('/mypage')
def mypage():  
   return 'This is My Page!' # return render_template('index.html') 하면 index.html불러옴

if __name__ == '__main__':  
   app.run('0.0.0.0',port=5000,debug=True)

** Flask 서버 만들 때

프로젝트 폴더 관리방법

프로젝트폴더

  ↳ static 폴더(css, 이미지 파일 보관용)

  ↳ templates 폴더 (html파일 보관용)

  ↳ app.py 파일

 

 

GET, POST  방식

 

더보기
더보기

* GET    →  통상적으로 데이터 조회(Read)를 요청할 때

                예) 영화 목록 조회

           →  데이터 전달 : URL 뒤에 물음표를 붙여  key=value로 전달

           →  예) google.com?q=북극곡

 

* POST  →  통상적으로 데이터 생성(Create), 변경(Update), 삭제(Delete)요청 할 때

                예) 회원가입, 회원탈퇴, 비밀번호 수정

           →  데이터 전달 : 바로 보이지 않는 HTML body에 key:value 형태로 전달

 

GET 요청 API코드 ( python파일 안에서)

@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코드 (HTML head 안에 javascript부분)

$.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)
    }
  })

응용해보기

GET 연습

더보기
더보기

서버 코드 - app.py

@app.route('/review', methods=['GET'])
def read_reviews():
    sample_receive = request.args.get('sample_give')
    print(sample_receive)
    return jsonify({'msg': '이 요청은 GET!'})

클라이언트 코드 - index.html (app.py 파일 '/review' 와 'GET' , 'msg' 부분의 매칭되는 부분을 확인한다.

function showReview() {
		// 서버의 데이터를 받아오기
		$.ajax({
        type: "GET",
        url: "/review?sample_give=샘플데이터",
        data: {},
        success: function (response) {
            alert(response["msg"]);
        }
    })
}

A. 요청 정보

- 요청 URL= /review , 요청 방식 = GET

- 요청 데이터 : 없음

 

B. 서버가 제공할 기능 : 데이터베이스에 리뷰 정보를 조회(Read)하고, 성공 메시지와 리뷰 정보를 응답 데이터를 보냄

 

C. 응답 데이터 : (JSON 형식) 'all_reviews'= 리뷰리스트

@app.route('/review', methods=['GET'])
def read_reviews():
    # 1. DB에서 리뷰 정보 모두 가져오기
    reviews = list(db.bookreview.find({}, {'_id': False}))
    # 2. 성공 여부 & 리뷰 목록 반환하기
    return jsonify({'all_reviews': reviews})

 

클라이언트 만들기

A. 요청 정보

- 요청 URL= /review , 요청 방식 = GET

- 요청 데이터 : 없음

 

B. 서버가 제공할 기능 : 데이터베이스에 리뷰 정보를 조회(Read)하고, 성공 메시지와 리뷰 정보를 응답 데이터를 보냄

C. 응답 데이터 : (JSON 형식) 'all_reviews'= 리뷰리스트

function showReview() {
                $.ajax({
                    type: "GET",
                    url: "/review",
                    data: {},
                    success: function (response) {
                        let reviews = response['all_reviews']
                        for (let i = 0; i < reviews.length; i++) {
                            let title = reviews[i]['title']
                            let author = reviews[i]['author']
                            let review = reviews[i]['review']

                            let temp_html = `<tr>
                                                <td>${title}</td>
                                                <td>${author}</td>
                                                <td>${review}</td>
                                            </tr>`
                            $('#reviews-box').append(temp_html)
                        }
                    }
                })
            }

'공부 > sparta' 카테고리의 다른 글

프로젝트 진행 1주차  (0) 2021.10.21
프로젝트 기획안  (0) 2021.10.14
3주차 수업내용 정리  (0) 2021.09.28
2주차 수업내용 정리  (0) 2021.09.22
1주차 수업내용 정리  (0) 2021.09.21

댓글