웹개발 종합반 4주차 내용

최재홍·2023년 3월 24일
0

우선 프로젝트 폴더를 만들고 파일명은 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과 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)
})

0개의 댓글