우선 프로젝트 폴더를 만들고 파일명은 app.py로 한다.
그리고 가상환경을 구축하기 위해서 다음과 같은 명령어를 사용한다.
python3 -m venv venv
가상환경 속에 원하는 프레임워크나 라이브러리를 설치한다. 이 경우에는 flask를 설치하도록 한다.
pip install flask
그리고 다음과 같은 코드를 친다.
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def home():
return 'This is my Home!'
@app.route('/mypage')
def mypage():
return render_template('index.html')
if __name__ == '__main__':
app.run('0.0.0.0', port=5000, debug=True)
첫번째 문단은 flask와 render_template라는 프레임워크를 활용할 것을 의미한다.
네번째 문단은 0.0.0.0 IP에서 5000번 포트를 사용하여 서버를 열 것임을 의미한다.
두번째 문단은 우리가 브라우저에서 'localhost:5000'으로 요청하면 반환되는 값을 브라우저에 표시할 것임을 의미한다.
세번째 문단은 'localhost:5000/mypage'로 요청하면 같은 프로젝트 폴더의 'templates' 폴더에 있는 'index.html' 파일을 렌더링 하겠다는 의미이다.
컴퓨터간 통신을 함에 있어 여러 방식이 존재하지만, 가장 많이 쓰이는 방식은 GET과 POST이다.
GET요청
통상적으로 데이터 조회(read)를 요청할 때, 사용한다.
ex)영화 목록 조회
->데이터 전달: URL 뒤에 물음표를 붙여 key=value로 전달
POST요청
통상적으로 데이터 생성(create), 변경(update), 삭제(delete) 요청할 때 사용한다.
ex)회원가입, 회원탈퇴, 비밀번호 수정
->데이터 전달: 바로 보이지 않는 HTML
<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요청 확인 Fetch 코드>
fetch("/test").then(res => res.json()).then(data => {
console.log(data)
})
<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요청 확인 Fetch 코드>
let formData = new FormData();
formData.append("title_give", "블랙팬서");
fetch("/test", { method: "POST", body: formData }).then(res => res.json()).then(data => {
console.log(data)
})