본문 바로가기

웹 개발/Flask

Flask 웹 개발(1) : Flask를 이용해보자.

Flask의 사용법을 익히기 위해 간단한 웹페이지를 Flask를 통해 만들어보자.

 

Flask?

Flask는 파이썬으로 작성된 웹 프레임워크다. 특별한 도구나 라이브러리가 필요없기 때문에 마이크로 프레임워크라고 부른다. 다른 상세한 내용들은 차차 Flask를 사용해보면서 알아가도록 하자!

 

Flask 시작 방법?

우선, Flask 공식 문서로 들어가보도록 하자.

https://flask.palletsprojects.com/en/2.0.x/

 

Welcome to Flask — Flask Documentation (2.0.x)

 

flask.palletsprojects.com

우선 파이썬을 설치하고 플라스크를 설치해야 하는 것 같다. 

파이썬은 이미 설치가 되어 있고, 플라스크를 vscode를 통해 설치하였다.

vscode에서 플라스크를 설치하는 방법은

터미널에서 $ pip install Flask 를 입력해주면 설치가 완료된다.

 

Flask 빠른 시작!

Flask도 설치했으니 이제 간단한 코드를 통해 Flask를 익혀보도록 하자.

Flask 공식 문서에 빠른 시작(Quick Start) 메뉴를 통해 최소 응용 프로그램을 확인할 수 있다.

최소 Flask 어플리케이션은 아래 코드와 같다. 

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello_world():
    return "<p>Hello, World!</p>"
    
app.run()

이 코드를 vscode에서 실행시켜 보면 아래와 같은 결과를 볼 수 있다.

vscode 터미널에서 확인할 수 있는 실행 결과. http://127.0.0.1:5000/ 링크로 들어간다.
실행 결과, Hello World! 가 웹페이지에 출력되는 것을 확인할 수 있다.

결과가 나오는 것은 기분 좋은 일이다.

하지만 저 짧은 코드가 어떤 역할을 하는지는 감이 잡히지 않는다.

그렇기 때문에 코드를 분석해 보도록 하자.


코드 분석

from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello_world():
    return "<p>Hello, World!</p>"
app.run()

1. flask를 이용하기 위해 Flask를 import 했다.

2. 그리고 Flask 인스턴스를 생성해주었다.

3. 여기서 @app.route("/") 라는 코드가 나오는데 이 코드가 어떤 역할을 하는가?

플라스크 공식 문서를 찾아보니 다음과 같은 설명이 적혀있었다.

 

"route()데코레이터를 사용하여 어떤 URL이 함수를 트리거해야 하는지 Flask에 알립니다."

("We then use the route() decorator to tell Flask what URL should trigger our function.")

 

route데코레이터고, 이 코드가 URL을 통해 함수를 호출하는데 쓰이는 것이라고 예상할 수 있다.

그렇다면 데코레이터는 무엇인가?

 

데코레이터(decorator)

데코레이터는 함수의 코드를 바꾸지 않고 데코레이터 안의 내용만 바꿔서 함수의 동작을 조절할 수 있다.

위 예시 코드를 보면 @app.route("/") 아래에 hello_world()라는 함수를 확인할 수 있다.

route()함수의 인자인 "/"를 통해 hello_world 함수를 호출하게 만드는 것이 app.route("/") 의 기능이라고 예상할 수 있다.

 

4~5. 화면에 출력되는 Hello, World! 를 return 하는 함수이다.

6. app을 실행한다.


지금까지 Flask 공식 문서를 참고하여서 간단한 웹페이지를 만들어 보았다.

코드 분석을 통해 route()의 이용 방법에 대해서 예상을 해 보았다.

나의 예상이 맞는지 확인하기 위해서 다음 게시물에서는 @app.route()를 이용해 다른 함수를 다른 URL을 통해 화면에 출력하는 작업을 해 볼 것이다.

 

 

피드백은 언제나 환영입니다. 감사합니다!

 

 

 

 

 

'웹 개발 > Flask' 카테고리의 다른 글