[Flask] url 매핑

wonnie1224·2022년 5월 13일
0

Flask

목록 보기
1/1

URL 매핑

from flask import Flask

def create_app():
    app = Flask(__name__)

    @app.route('/')
    def hello_pybo():
        return 'Hello, Pybo!'

    return app

hello_pybo : / URL과 매핑되는 함수
@app.route('/')가 이런 url 매핑을 만들어줌
route 장식자 : 플라스크 서버임, '/'url 요청이 들어왔을 때 어떤 함수를 호출할 것인지 조정

  • 장식된 함수에서 결과가 변환될 때까지 기다리다가 결과가 반환되면 그 결과를 대기 중인 웹 브라우저로 반환

라우팅 함수: @app.route와 같은 애너테이션으로 URL을 매핑하는 함수
블루프린트 : 플라스크에서 URL과 함수의 매핑 관리하기 위해 사용하는 도구(클래스) -> 라우팅 함수 체계적으로 관리 가능

블루프린트 생성

at. [파일명: projects/myproject/pybo/views/main_views.py]

from flask import Blueprint

bp = Blueprint('main', __name__, url_prefix='/')	# bp 객체 생성
@bp.route('/')
def hello_pybo():
    return 'Hello, Pybo!'
# main : 블루프린트의 "별칭" -> 이후 url_for 함수에서 사용
# __name__ : 해당 모듈의 이름을 가지고 있는 변수(=지금 py 파일의 이름을 가지고 있는 변수)
직접 실행된 파일 __name__ == "__main__" 
임포트 돼서 모듈로 사용된 .py 파일 __name__ == "모듈이름"

출처: https://blockdmask.tistory.com/545 [개발자 지망생]
# url_prefix : 라우팅 함수의 애너테이션 URL 앞에 기본으로 붙일 접두어 URL을 의미한다
ex) main_views.py 파일의 URL 프리픽스에 url_prefix='/' 대신 url_prefix='/main'이라고 입력했다면 hello_pybo 함수를 호출하는 URL은 localhost:5000/이 아니라 localhost:5000/main/이 됨

블루프린트 등록

at. [파일명: projects/myproject/pybo/__init__.py]

from flask import Blueprint

bp = Blueprint('main', __name__, url_prefix='/')


@bp.route('/hello')
def hello_pybo():
    return 'Hello, Pybo!'


@bp.route('/')
def index():
    return 'Pybo index'

=> 라우팅 함수가 추가되더라도 main_views.py 파일에 함수를 추가하면 되기 때문에 create_app 함수(이건__init__.py안에 있음)가 뚱뚱해질 일을 걱정할 필요 X

profile
안녕하세요😊 인공지능을 공부하고 있는 대학생입니다 🙌

0개의 댓글