Flask 시작하기

Minwoo Kang
5 min readMay 5, 2018

--

“Close-up of a person's hands on the keyboard of a MacBook” by Glenn Carstens-Peters on Unsplash

안녕하세요. 시험도 겹치고 해서 포스팅을 엄청 오랬동안 안했네요…
다음 시험기간까지는 열심히 포스팅하도록 노력하겠습니다.

저번 시간에 플라스크를 시작하기 위한 준비를 다 끝냈습니다.

우선 플라스크 프로젝트를 만들기로 할게요.

저번 시간에 제가 파이썬 2.x.x을 쓴다고 했었는데, 어찌어찌하다가 저도 3.x.x버전으로 넘어오게 되었습니다. 참고해주세요!

PyCharm을 실행시켜주세요.

Create New Project 버튼을 클릭하게 되면 이런 화면이 뜰거예요.

왼쪽 메뉴 중에 Flask를 선택하고 저는 ‘reddit’이라는 이름으로 프로젝트를 만들도록 하겠습니다.

아래 화면은 파이썬 인터프리터를 설정해놓은건데요, 기본적으로 설정되어 있을 겁니다. 혹시 안되어있다면 직접 디렉토리 경로를 찾아서 설정해주세요.

Create 버튼을 누르게 되면 PyCharm에서 플라스크 구동에 필요한 설정을 자동으로 해줍니다. 이 화면은 프로젝트 생성 후 초기 화면입니다.

옆 메뉴에 있는 플라스크 프로젝트를 열어서 보시면 venv라는 파일에 초기 설정되어 있는 것을 확인할 수 있는데요.

아직 이 부분은 저도 정확하게 잘 모르기 때문에 플라스크 파일에 대해서
삽질(?)을 해보는 것은 따로 포스팅하도록 하겠습니다.

소스코드를 보기 전에 플라스크를 실행시켜볼게요.

실행 버튼을 누르게 되면 아래에 http://127.0.0.1:5000/이라는 링크가 뜨게 됩니다. 링크를 클릭해보겠습니다.

링크를 클릭하게되면 위와 같은 웹페이지가 나오네요.

그럼 이제 소스코드를 한번 까볼까요?

저도 문법 하나하나의 의미를 알지는 못하지만 제가 이해한대로 이야기해보겠습니다.

from flask import Flask 이 문장은 flask라는 패키지에서 Flask 모듈import 해줌으로써 플라스크를 사용할 수 있도록 설정해주는 문장인 것 같네요.

app = Flask(__name__)은 무엇을 뜻할까요?

플라스크를 쓰면서 대충 ‘flask를 쓰기 위한 변수 선언이겠구나…’라고 생각을 했지만 막상 설명하려니 어렵네요.

구글링을 통해서 자세하게 찾아보았습니다.

__name__변수는 파이썬이 내부적으로 사용하는 특별한 변수명입니다.

이게 좀 저한테도 어려운 개념인데 그럭저럭 해석한바로는 __name____main__이라는 값을 가지게 되면 해당 모듈이 주 프로그램이라는 소리이고, 해당 모듈을 실행시키지 않고 import 했을 때는 모듈 이름이 __name__으로 들어가게 됩니다.

그렇게 app 이라는 변수로 Flask 모듈을 쓸 수 있도록 만드는 것 같습니다.(이건 아직도 잘 모르겠어요…ㅠㅠ 아시는 분 있으면 댓글로 남겨주세요 ㅎㅎ)

이제 다음 코드를 볼께요.

@app.route(‘/’)라는게 있네요.

@app.route은 예를 들어 naver.com/reddit이라는 주소가 있다고 칩시다.

그러면 naver.com은 도메인을 뜻해서 냅두고 reddit 이라는 주소 부분이 @app.route()에 들어가는 부분입니다.

위 형식처럼 라우팅을 하려면 @app.route(‘/reddit’)으로 쓰면 되겠네요.

그리고 다음에 함수가 오는데 이것은 플라스크의 규칙이라고 생각하시면 되요.

항상 라우팅을 한 다음에는 그 라우팅하는 주소에 대한 함수를 만들어서 어떻게 작동할지 선언해주어야합니다.

이 소스에서는 return ‘Hello World!’를 해줌으로써 웹 페이지 상에서 ‘Hello World!’라는 문구가 나타나게 해주었네요.

그리고 마지막에

이런 소스코드가 있네요.

이건 제가 처음에 설명드렸던 __name__ __main__이 들어있는지 확인해주는 소스입니다.

flask 서버를 실행시킬 때 app.py가 실행되니까 __name__에는 __main__이 들어가서 app.run()이 실행이 되겠지요?

오늘은 flask를 통해서 웹 페이지에 ‘Hello World!’라는 문구를 띄우는 것을 해보았습니다.

다음 포스팅에서는 flask에서 많이 쓰이는 모듈에 대해서 알아보겠습니다.

더 궁금하신 점을 적어주시면 그 부분에 대해서 빠르게 수정하여 올리겠습니다. 감사합니다.

--

--