프로그래밍/Flask

[Flask] 파이썬으로 웹 실행해보기 - Flask 처음!

Dibrary 2021. 7. 21. 10:03
반응형

안녕하세요, Dibrary입니다.

파이썬으로 온갖것을 다 할 수 있는데, 그 중에 웹도 할 수 있습니다.

물론 국내에서 웹은 대다수 JAVA를 이용해서 하지만요. 신생 기업 같은 경우들은 파이썬을 이용한 Django나 Flask를 쓰곤 합니다.

Django는 Flask보다는 배워야 하는 내용이 꽤 많아서 저는 간단한 테스트 용으로는 항상 Flask로 만들어서 확인하곤 합니다.

 

# Flask 설치

이번에도 어김없이 jupyter lab에서 실행 해 볼 겁니다. Flask 실행은 Pycharm이라는 환경이 더 좋지만, 지금은 소개만 할 것이니까 괜찮습니다.

먼저 터미널을 열고 pip install flask 를 입력하세요.

그러고 시간이 좀 지나다보면 설치가 됩니다.

설치가 되었는지 어떻게 확인 하냐구요? pip list 를 해 보시면 알 수 있습니다.

설치가 된 것을 알 수 있습니다. 

 

그러면 곧바로 소스코드를 작성 해 보죠.

# Flask로 Hello World 출력하기

코드를 똑같이 입력 해 보시고 실행 하시면 됩니다.

실행 하면 밑에 이렇게 나타납니다. 뭔가 127.0.0.1:5000 여기에서 running 중이다 뭐 이런 느낌이 나죠?

과연 그런지 웹 브라우저를 아무거나 켜서 가보죠.

그대로 입력을 합니다.

우와~ 아까 입력한 글자가 그대로 나오죠? 글자를 바꿔보셔도 됩니다.

 

코드가 무슨 의미를 하는지 알아보겠습니다.

1. from flask import Flask

말 그대로 flask 모듈을 불러오는 것입니다. 설치만 하고 불러오지 않으면 못 쓰겠죠? 

 

2. app = Flask(__name__)

Flask 애플리케이션 모듈명을 __name__이라는 것으로 넘기고 app이라는 객체를 만드는 것입니다.

어려우시다구요? 뭐 그렇게 중요하게 생각하실건 없습니다. 그저 시작은 저렇게 하는구나~ 정도만 알아두시면 됩니다.

 

3. @app.route('/')

이 코드는 경로를 입력하는 것입니다. 단순히 / 만 있는 것은 가장 처음에 뜨게 하는 용도라고 보시면 편합니다.

실제로 URL에 127.0.0.1:5000/ 이렇게 우리가 접근 했기 때문에, 위 경로로 들어온것임을 프로그램이 인지한 것이죠.

 

URL을 함수로 연결하는 것을 '라우팅'이라고 합니다.

4. def hello_world( ): return 'Hello World'

이 코드는 그대로 hello world 문구를 출력만 하는 함수입니다. 근데 함수 바로 위에 경로가 맞는지 확인하는 코드가 붙어있었죠?

즉, 경로가 맞는 것의 함수가 실행이 되는 것입니다. (여기서 어느정도 느낌이 오시나요? 경로를 다양하게 하면 다양한 함수를 실행할 수 있다는 것입니다.)

이렇게 URL을 호출했을 때 호출되는 함수를 '뷰 함수'라고 합니다.

함수 이름은 URL과 똑같을 필요는 없습니다. 

 

5. app.run( )

그저 Flask 앱을 실행하는 코드입니다.

지금은 테스트로만 하니까 그냥 app.run을 입력했지만, 원래는 if __name__=="__main__": 코드도 추가 해 줘야 좀 더 안전합니다. (모듈에 관한 내용이니 넘어가셔도 됩니다.)

 

# 다른 입력도 받아볼까요?

이번에는 여러가지 입력을 받으면 여러가지 출력을 다양하게 해 보도록 하겠습니다.

이번에는 다른 코드는 그대로인데, 2개의 함수가 추가되었죠?

cloud라는 URL 경로에 따라 실행 될 cloud 함수

hot이라는 URL 경로에 따라 실행 될 sohot 함수

결과가 어떻게 나오나 볼까요?

URL을 잘 보세요.

/cloud로 하니까 cloud 함수 내용이 나오고, /hot으로 하니 해당 함수(sohot) 내용이 나옵니다.

이 기능만 가지고도 간단한 테스트용 웹을 만들 수 있습니다.

 

지금은 단순히 글자만 나타나는데, 점진적으로 이미지도 나타나는 웹을 구현 해 보겠습니다.

728x90
반응형