Flask는 Python의 대표적인 웹 프레임워크 중 하나이다.
주로 함께 언급되는 Django 보다 가볍고 상대적으로 더 빠르게 서버를 구동시킬 수 있다. 또한 Jinja
와 Werkzeug
가 포함되어 있고 기본적으로 필요한 기능만 제공하기 때문에 코드가 조금이나마 더 간결하다.
설치
먼저 Flask를 설치하도록 하자.
$ pip install flask
설치가 끝났다면 flask --version
명령어를 입력하면 다음과 같은 결과가 나온다
Python 3.8.1
Flask 1.1.2
Werkzeug 1.0.1
첫 Flask 애플리케이션 실행하기
이제 원하는 위치에 app.py
파일을 생성하고 다음 코드를 작성하자
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return 'Hello World'
if __name__ == "__main__":
app.run(host='0.0.0.0', port=5000)
코드를 다 작성했다면 다음 명령어를 통해 서버를 구동해보자.
$ python app.py
그럼 다음과 같은 출력과 함께 서버가 시작된다.
* Serving Flask app "app" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
이제 http://localhost:5000
주소로 접속하면 화면에 Hello World 가 출력되는것을 볼 수 있다.
HTML 파일 출력하기
이제 서버를 구동하는데에는 성공했으니 HTML 파일을 화면에 출력해보자.
먼저 templates
폴더를 생성하고 그 안에 index.html
파일을 만든 후 아래 코드를 입력하자.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Flask</title>
</head>
<body>
<h1>Hello World</h1>
<p>Hello Flask</p>
</body>
</html>
이제 화면에 생성한 HTML 파일을 출력하기 위해 app.py를 수정하자.
from flask import Flask
from flask import render_template
app = Flask(__name__)
@app.route('/')
def home():
return render_template('index.html')
if __name__ == "__main__":
app.run(host='0.0.0.0', port=5000)
그리고 다시 python app.py
명령어를 통해 서버를 구동 한 후 http://localhost:5000
주소로 다시 접속하면 방금 작성한 HTML 파일의 내용이 나타나는 것을 확인할 수 있다.