백엔드-프론트엔드 연결 실습
연습 -> 모두의책리뷰 -> 나홀로메모장 -> 마이페이보릿무비스타 반복실습
🔥 projects/prac 폴더에서 시작
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)
@app.route('/')
부분 수정해서 URL 나눌수 있음from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return 'This is Home!'
@app.route('/mypage')
def mypage():
return 'This is My Page!'
if __name__ == '__main__':
app.run('0.0.0.0',port=5000,debug=True)
👉 Flask 서버 만들때 기본 폴더구조
프로젝트 폴더 안에
ㄴ static 폴더 (이미지,css 파일)
ㄴ templates 폴더 (html 파일)
ㄴ app.py 파일
prac/templates/index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<title>Document</title>
</head>
<body>
<h1>서버를 만들었다!</h1>
</body>
</html>
flask 내장함수 render_template 사용해 html 불러오기
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)
실행결과
index.html 바로 실행
단순히 파일을 연것
app.py로 실행
서버에 요청->서버에서 받아와서 실행
통상적으로, 데이터 조회(Read)를 요청할 때
ex) 영화목록 조회데이터 전달: URL 뒤에 물음표 붙여 key=value 형태로 전달
ex) google.com?q=북극곰
통상적으로, 데이터 생성(Create), 변경(Update), 삭제(Delete) 요청할 때
ex) 회원가입, 회원탈퇴, 비밀번호 수정
데이터 전달: 바로 보이지 않는 HTML body에 key:value 형태로 전달
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 요청 Ajax 코드
$.ajax({
type: "GET",
url: "/test?title_give=봄날은간다",
data: {},
success: function(response){
console.log(response)
}
})
{msg: '이 요청은 GET!, result: 'success'}
출력됨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)
}
})
{msg: '이 요청은 POST!', result: 'success'}
출력됨💡 API에서 받아올 요청이름(title_give)과 Ajax에서 요청할 이름(title_give) 같아야함!