flask 라우팅 방법 중에 정적 라우팅, 동적 라우팅 두가지 방법이 있다.

정적 라우팅 방법은 아래와 같이 경로를 직접 설정해주는 방식으로 해당 url의 정확한 주소로 들어와야만 진행되는 방식.

(로컬에서 아래 경우라면 기본주소/login 이라는 url에서만 반응하는 방식)

@app.route("/login")

 

동적 라우팅은 변수등을 통해 동적으로 페이지를 반응하게 하는 방식.

(아래는 기본주소/ 뒤에 오는 값에 따라 동적으로 화면을 로딩하는 방식이다)

@app.route('/<path>')
def get_path(path):
    return render_template(path+'.html')

 

 

구현 테스트 

준비)

templates에 여러페이지 생성

index.html 파일에 버튼

app.py 코드

@app.route('/<path>')
def get_path(path):
    return render_template(path+'.html')

 

 

실행)

화면에서 A버튼을 누르게 되면 /A 로 라우팅되면서 

/(슬러쉬)뒤의 코드를 path 변수 값으로 인식해 아래코드의 모든 path값은 A가 된다

get_path 매개변수 path 값도 A, 따라서 아래 render_template함수 안의 path에도 A가 들어가게 되어

결론적으로 A.html 을 렌더하게 된다. 저 위에 B나 C도 같은 방식으로 이동하여 각각 B.html과 C.html을 렌더.

이처럼 url을 일부를 변수로서 활용하게 되면 여러가지 페이지를 연결해야할때 @app.route 데코레이션을 여러개 쓸 필요 없이 하나로 여러가지 페이지를 연결할 수 있다.

+ Recent posts