본문 바로가기
Web developer/Flask

[Flask] 플라스크 어플리케이션

by doongjun 2020. 12. 12.

초기화

모든 플라스크 어플리케이션은 어플리케이션 인스턴스를 생성해야 하는데 다음과 같이 생성한다.

from flask import Flask
app = Flask(__name__)

라우트와 뷰 함수

클라이언트는 웹 서버에 request를 전송하며 플라스크 어플리케이션 인스턴스에 교대로 전송한다. 어플리케이션 인스턴스느 각 url 리퀘스트 실행을 위해 어떤 코드가 필요한지 알아야 하며, 따라서 url을 파이썬 함수에 매핑하는 기능이 필요하다. 

플라스크 어플리케이션에서 라우트를 정의하는 가장 손쉬운 방법은 어플리케이션 인스턴스에서 app.route 데코레이터를 사용하는 것이다. 이것은 데코레이터 함수를 라우트로 등록한다. 

@app.route('/')
def index():
    return '<h1>Hello World!</h1>'

서버 시작

어플리케이션 인스턴스는 run 메서드를 갖고 있는데 이 메소드는 플라스크의 통합 개발 웹 서버를 실행한다.

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

__name__ == '__main__' 이 코드는 스크립트가 직접 실행될 때만 개발 웹서버가 실행된다는 것을 알려준다. 스크립트가 다른 스크립트에 의해 import되면 부모 스크립트는 다른 서버를 실행할 수 있으며 따라서 app.run() 호출은 건너뛰게 된다.

 

완성된 어플리케이션

from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
    return '<h1>Hello World!</h1>'

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

다른 url을 입력하게 되면 어플리케이션은 404 에러코드를 리턴하게 된다. 이 에러코드는 존재하지 않는 웹 페이지를 방문할 때 보게 되는 익숙한 에러 코드다.

 

 

위의 어플리케이션에 동적 라우트를 추가해보면,

from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
    return '<h1>Hello World!</h1>'

@app.route('/user/<guest>')
def user(guest):
    return '<h1>Hello, %s!</h1>' % guest

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

 

 

 

 

 

 

'Web developer > Flask' 카테고리의 다른 글

[Flask] Form  (0) 2020.10.31
[Flask] Jinja2 Template #2  (0) 2020.10.31
[Flask] Jinja2 Template #1  (0) 2020.10.30
[Flask] Bootstrap  (0) 2020.10.30
[Flask] Blueprint  (0) 2020.10.24

댓글