목표: API 설계하고, Flask 프레임워크 사용해 만들기
응용 프로그램(앱)에서 기능을 사용하거나 데이터를 주고 받기 위한 기능들을 말함.
Flask는 웹을 만들고 서버를 구동시키기 편하게하는 프레임워크. 서버를 구동하려면 필요한 복잡한 일을 간편하게 쓸 수 있음.
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run('0.0.0.0', port=5000, debug=True)
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def home(): # 함수명 수정 - 이름만 보고 접속되는 페이지를 확인할 수 있게!
return render_template('index.html')
@app.route('/mypage')
def my_page():
return 'This is My Page!'
if __name__ == '__main__':
app.run('0.0.0.0', port=5000, debug=True)
templates폴더에는 HTML 파일을 담아둠. 실행할 때에는 이 폴더에서 화면을 불러옴.
<!DOCTYPE html>
<html lang="ko">
<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.5.1/jquery.min.js"></script>
<title>첫 Flask 프로젝트</title>
</head>
<body>
<h1>서버를 만들었다!</h1>
</body>
</html>
Flask 내장함수 render_template를 이용해 HTML 파일을 불러옴
app.py 파일을 수정
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def home(): # 함수명 수정 - 이름만 보고 접속되는 페이지를 확인할 수 있게!
return render_template('index.html')
@app.route('/mypage')
def my_page():
return 'This is My Page!'
if __name__ == '__main__':
app.run('0.0.0.0', port=5000, debug=True)
<!DOCTYPE html>
<html lang="ko">
<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.5.1/jquery.min.js"></script>
<title>Title</title>
</head>
<body>
<h1>서버를 만들었다!</h1>
<img src="{{ url_for('static', filename='rome.jpg') }}"/>
</body>
클라이언트가 요청을 할 때에도 '방식'이 존재함.
클라이언트는 요청할 때 HTTP request method를 통해 어떤 요청 종류인지 응답하는 서버 쪽에 정보를 알려줌