[스파르타 코딩] 웹 개발 종합반 4주차 - flask(GET, POST)

김동현·2022년 9월 12일
0

💡flask

파이썬으로 작성된 Micro Web Framework의 하나로 간단히 웹 사이트, 혹은 간단한 API 서버를 만드는데 특화되어 있는 Python Web Framework이다. (Pycharm에서 패키지 설치를 통해 사용 가능)

  • flask의 기본 폴더 구조
    • static 폴더 : 이미지, CSS 파일을 넣어둔다.
    • templates 폴더 : HTML 파일을 넣어둔다.
    • app.py : 서버 관련 코드

flask 시작 코드 (app.py)

from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
   return 'This is Home!'
if __name__ == '__main__':  
   app.run('0.0.0.0',port=5000,debug=True)

-> 맥북은 이미 5000번의 포트가 이미 사용중이기 때문에 다른 포트 번호로 시작해야 한다.

이후 크롬에서 http://localhost:5000/ 접속 시 서버가 만들어진 것을 알 수 있다.

  • API 만들기

HTTP 메서드 중 GETPOST과 가장 많이 사용된다.

  • GET → 통상적으로! 데이터 조회(Read)를 요청할 때
    예) 영화 목록 조회
    → 데이터 전달 : URL 뒤에 물음표를 붙여 key=value로 전달
    → 예: google.com?q=북극곰
  • POST → 통상적으로! 데이터 생성(Create), 변경(Update), 삭제(Delete) 요청 할 때
    예) 회원가입, 회원탈퇴, 비밀번호 수정
    → 데이터 전달 : 바로 보이지 않는 HTML body에 key:value 형태로 전달

ex) 예를 들어, 클라이언트에서 서버에 title_give란 키 값으로 데이터를 들고왔다고 했을 때

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!'})

-> /test라는 창고를 만들어 Ajax에서 받아온 title_give 변수에 넣어 print

  • 요청 확인 Ajax 코드
$.ajax({
    type: "GET",
    url: "/test?title_give=봄날은간다",
    data: {},
    success: function(response){
       console.log(response)
    }
  })

-> /test라는 창고를 가는데 title give라는 이름으로 봄날은 간다라는 데이터를 가져간다.

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!'})
  • 요청 확인 Ajax 코드
$.ajax({
    type: "POST",
    url: "/test",
    data: { title_give:'봄날은간다' },
    success: function(response){
       console.log(response)
    }
  })
profile
오늘은 오늘

0개의 댓글