웹개발 종합반 4주차 - Flask시작하기 - 서버만들기 / Flask시작하기 - HTML파일 주기

2022. 1. 3. 14:21코딩공부/스파르타코딩클럽 - 웹개발종합반

Flask시작하기 - 서버만들기

flask 시작 코드

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)

 

 

Flask시작하기 - HTML파일 주기

Flask 기초: 기본 폴더구조 - 항상 이렇게 세팅하고 시작!

Flask 서버를 만들 때, 항상, 프로젝트 폴더 안에,

ㄴstatic 폴더 (이미지, css파일을 넣어둡니다)

ㄴtemplates 폴더 (html파일을 넣어둡니다)

ㄴapp.py 파일

이렇게 세 개를 만들어두고 시작하세요.

 

Flask 기초: HTML 파일 불러오기

index.html 파일을 templates 안에 만들기

from flask import Flask, render_template
app = Flask(__name__)

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

@app.route('/')
def home():
   return render_template('index.html')

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

 

 

Flask시작하기 - 본격 API 만들기

은행의 창구와 API는 같습니다.

같은 예금 창구에서도 개인 고객이냐 기업 고객이냐에 따라 처리하는 것이 다른 것처럼,

클라이언트가 요청 할 때에도 "방식"이 존재합니다.

클라이언트는 요청할 때 HTTP request method(요청 메소드)를 통해, 어떤 요청 종류인지 응답하는 서버 쪽에 정보를 알려주는 거에요.

 

GET, POST 방식

여러 방식(링크)이 존재하지만 우리는 가장 많이 쓰이는 GET, POST 방식에 대해 다루겠습니다. 

* GET        	  →     통상적으로! 데이터 조회(Read)를 요청할 때
                           예) 영화 목록 조회
                  →     데이터 전달 : URL 뒤에 물음표를 붙여 key=value로 전달
                  →     예: google.com?q=북극곰

* POST     		  →     통상적으로! 데이터 생성(Create), 변경(Update), 삭제(Delete) 요청 할 때
                           예) 회원가입, 회원탈퇴, 비밀번호 수정
                  →     데이터 전달 : 바로 보이지 않는 HTML body에 key:value 형태로 전달

서버에 무언가 요청할때는 Ajax로 콜한다.

 

GET요청 API 코드(app.py)

from flask import Flask, render_template, request, jsonify
app = Flask(__name__)

@app.route('/')
def home():
   return render_template('index.html')

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

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

Get 요청 확인 Ajax 코드(클라이언트 console)

from flask import Flask, render_template, request, jsonify
app = Flask(__name__)

@app.route('/')
def home():
   return render_template('index.html')

@app.route('/test', methods=['GET'])
def test_get():
   title_receive = request.args.get('title_give') # title_give로 가져온 값 가져와봐. 여기서는 '봄날을간다'를 가져온다
   print(title_receive) # ''봄날은 간다'를 print한다
   return jsonify({'result':'success', 'msg': '이 요청은 GET!'})

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

 

POST 요청 API코드(app.py)

@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코드(클라이언트 console)

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

from flask import Flask, render_template, request, jsonify
app = Flask(__name__)

@app.route('/')
def home():
   return render_template('index.html')

@app.route('/test', methods=['GET'])
def test_get():
   title_receive = request.args.get('title_give') # title_give로 가져온 값 가져와봐. 여기서는 '봄날을간다'를 가져온다
   print(title_receive) # ''봄날은 간다'를 print한다
   return jsonify({'result':'success', 'msg': '이 요청은 GET!'})

@app.route('/test', methods=['POST'])
def test_post():
   title_receive = request.form['title_give'] # title_give로 가져온 값 가져와봐. 여기서는 '봄날을간다'를 가져온다
   print(title_receive)
   return jsonify({'result':'success', 'msg': '이 요청은 POST!'})

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

 

** Server Error가 뜨면 App.py를 확인하자