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
'TIL > Flask' 카테고리의 다른 글
[Flask] Flask 환경 설정 / 파이썬 가상 환경 venv / Vscode Flask 가상환경 설정 및 진입 (0) | 2022.11.08 |
---|---|
[Flask] Flask란? / Flask 장단점 및 Django 차이점 / Flask 사용 이유 및 용도 (0) | 2022.11.07 |
댓글