본문 바로가기
TIL/Flask

[Flask] Flask 어플리케이션 작성 및 실행 / 환경변수 설정

by 왁왁s 2022. 11. 9.

Flask 어플리케이션 작성

Flask가 정상적으로 설치가 완료 되었으면, app.py 파일을 생성 후 아래코드를 복사해 실행시켜 본다.

 

from flask import Flask
app = Flask(__name__)



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


if __name__ == '__main__':
	app.run()

 


Flask 어플리케이션 코드 설명

코드를 간략히 설명하자면

from flask import Flask

flask의 라이브러리에서 Flask라는 class를 improt 한다. 

해당 클래스가 WSFI (Web Server Gateway Interface) 어플리케이션 역할을 할 것이다.

 


 

app = Flask(__name__)

app = Flask(__name__)은 플라스크 애플리케이션을 생성하는 코드이다.

 

Flask 클래스의 객체를 생성하고, 인자로 __name__을 준다. __name__에는 '모듈명' 또는 '패키지명'이 담긴다.

flaskServer.py라는 파일에 모듈을 실행하면, __name__에는 'flaskServer'라는 문자열이 담긴다.

 

name을 주는 이유는, 어플리케이션으로 시작되는지, 모듈로 import 되는지에 따라 이름이 달라지기 때문이다.

 

해당 코드는 Flask 에서 템플릿이나 정적파일을 찾을 때 필요하다.

 


 

@app.route('/')

route( ) 데코레이터를 사용해 Flask에서 어떤 URL이 우리가 작성한 함수를 실행시키는지 알려준다.

URL을 설정하는 코드이며, 생성한 객체의 route를 설정하는 것으로 볼 수 있다.

 

데코레이터(Decorator)란 하나의 함수를 취해 또 다른 함수를 반환하는 함수를 의미한다.

 


 

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

def 명령어로 hello( )라는 함수를 생성하고 'Hello World!' 라는 메시지를 return 한다. 

 


 

if __name__ == '__main__':
	app.run()

위에서 Flask의 url을 담은 변수 app에서 run( ) 함수를 통해 코드로 작성한 애플리케이션을 로컬 서버에서 실행한다.

 

if 조건문의  __name__ = '__main__' 은 실행한 서버가 현재 동작되는 유일한 서버(main)라는 의미이다. 

 

 


 

Flask 어플리케이션 실행하기

 

1. set FLASK_APP= [ 프로젝트 이름 ] 

해당 프로젝트가 Flask app 이라는 것을 알려주어 환경 변수에 생성한 프로젝트명을 등록한다.

 

조금 더 쉽게 말하면, Flask 서버를 가동할 때 실행할 어플리케이션을 지정해주는 역할을 한다.

set FLASK_APP= [프로젝트 이름]

 

나는 flaskServer.py를 생성하였기 때문에

[프로젝트 이름]은 flaskServer이 된다.

 

플라스크는 FLASK_APP 환경 변수가 지정되지 않은 경우 자동으로 app.py 파일을 기본 애플리케이션으로 인식한다. 

그러므로 app.py 파일에 작성한 경우엔 위의 과정을 거칠 필요가 없다.

 


 

(2) set FLASK_ENV=development

최초 프로젝트를 생성하면 FLASK_ENV 환경변수는 Default 값으로 production으로 되어 있다.

해당 FLASK_ENV 환경변수를 development 개발 환경으로 설정해준다.

set FLASK_ENV=development

 

 


 

 

Flask 실행

flask run 

flask run 명령어를 통해 서버를 실행한다.

flask run 명령어는 파이썬 파일이 생성된 폴더의 위치에서 실행해주어야 한다.

flask run

 

 

Flask run 경고 문구 발생

'FLASK_ENV' is deprecated and will not be used in Flask 2.3. Use 'FLASK_DEBUG' instead.

 

Flask run 명령어를 실행하면 위와 같은 경고 문구는

Flask 2.2 버전부터 를 실행할 때 'flask run' -> 'flask --debug run'으로 실행하여야

디버깅이 ON이 되어 경고 메세지가 뜨지 않는다.

 

flask --debug run

 

댓글