>

상세 컨텐츠

본문 제목

블루프린트로 파이썬 파일을 관리중인데, html 파일이 안불러와진다면?

7. 봉드로이드_개발공부

by 마켓플레이어, 마케터 봉 2024. 10. 26. 18:58

본문

지난 번 포스팅에서 블루프린트로 파이썬 파일을 관리하는 방법을 알아봤다.

https://marketerbong.tistory.com/62

 

파이썬 파일 관리방법(ft. blueprint 사용)

우선 파이썬의 기본 구조는 다음과 같다.from flask import Flask, render_templateapp = Flask(__name__)@app.route('/')def home(): return render_template('index.html')if __name__ == '__main__': app.run('0.0.0.0', port=4000, debug=True)flask의

marketerbong.tistory.com

 

우선 안불러와지는 상황은 header나 footer 같은 영역이 안불러와지는 경우가 생길 수 있다.

아래 글의 경우 html파일을 불러오는 것으로 코딩을 했으나, 블루프린트로 파이썬 파일을 관리 중이라면 제대로 안불러와질 것이다.

https://marketerbong.tistory.com/87

 

그럴 경우 아래와 같이 코드를 작성해보자.

from flask import Blueprint, render_template, request, jsonify

bp = Blueprint("chatgpt", __name__)

@bp.route('/')
def about():
   return render_template('about.html')


# header 불러오기
@bp.route('/header')
def header():
   return render_template('header.html')

# footer 불러오기
@bp.route('/footer')
def footer():
   return render_template('footer.html')

 

우선 header 영역과 footer 영역을 불러오기 위해 라우터에 경로를 설정하고, render_template으로 각 html 파일을 불러온다.

 

하지만 핵심은 아래 이미지 부분이다.

바로 template_folder 지정해 준 것을 삭제하는 것이다.

 

안그럼 header의 네비게이션 영역을 누를 때마다 페이지가 중복되어 불려와 질 것이다.

ex) http://bongdroid.info/about/ 페이지에서 About을 누른다면? http://bongdroid.info/about/about 으로 연결된다. 즉, 찾을 수 없는 페이지가 뜬다.

 

사실 template_folder 가 폴더명을 지정해주는 것으로 알고 있어서, 위 예시처럼 url이 중복으로 불려와지는 현상에 잠깐 당황했었다.

괜한 url_prefix 만 찾아보면서 수정해봤는데, 안되더라.

관련글 더보기