과제

플라스크 (Flask) 코드 해석

ilsancityboy 2023. 7. 31. 22:29

앞서 글에서 설명한대로 웹 프레임워크인 플라스크 (Flask) 를 사용하여 웹 사이트를 띄워주는 코드를 해석해보자.

 

 

pip install flask

먼저 플라스크를 사용하기 위해 별도로 설치를 해준다.

 

 

 

# 코드 완성본
from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8080)

그후에 메인 코드에서 플라스크를 import 시켜주고

플라스크 (flask) 클래스의 인스터를 생성하여 app 변수에 저장한다.

그후에 라우트를 설정한다.

즉 , 클라이언트에서 / 경로로 요청을 보내면 hello(): 함수를 실행시키며 hello, world! 를 반환하여 출력시켜준다. 

 

if __name__ == '__main__':

 

이 부분은 처음보았을때 무슨 역할일까 싶었다.

이 구문은 해당 모듈이 직접 스크립트로 실행 시켜야만 코드 블록이 실행된다는 의미이다.

무슨 뜻이냐?

 

예시를 들어 설명해보겠다.

module.py

print("안녕하세요")

if __name__ == '__main__':
	print(" 하이하이 ")

위 내용으로 작성된 module.py 를 만들었다.

그후에 main.py 에서 module.py 를 import 시켜보겠다.

main.py

import module

print(" 테스트1 ")

main.py 의 출력결과는 다음과 같을것이다.

>>>
안녕하세요
테스트1

 

눈치 챘듯이 if __name__ == '__main__' 의 의미는 

해당 모듈이 다른곳에서 참조시켜 실행되는것이 아닌 직접 실행 되어야만 코드가 실행된다.

그런데 플라스크를 사용하여 웹 사이트를 띄우는 메인코드에서 굳이 직접 실행시켜야만 코드가 실행되게끔 코드를 작성할 필요가 있을까 ? 

그냥 app.run 만 써서 바로 실행시켜도 서버가 정상적으로 켜지지 않을까? 

-> 틀린말은 아니다. 하지만 다른곳에서 해당 모듈을 참조 시 app.run도 같이 실행하게 되어 중복으로 실행되어 오류가 날 가능성이 있기 때문이다. 따라서 서버를 가동시켜주는 app.run  은 메인 코드를 실행시켜야만 켜지게끔 따로 구분해둔 것이다.

 

 

 

 

 

'과제' 카테고리의 다른 글

HTML 문서 작성 연습  (0) 2023.09.06
HTML , JS , CSS  (0) 2023.09.06
Flask (플라스크) 라이브러리  (1) 2023.07.15
2주차 과제 - 그누보드란?  (0) 2023.06.17
2주차 과제 - 드림 핵 가입하기  (0) 2023.06.17