블루프린트로 파이썬 파일을 관리중인데, html 파일이 안불러와진다면?
지난 번 포스팅에서 블루프린트로 파이썬 파일을 관리하는 방법을 알아봤다.
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 만 찾아보면서 수정해봤는데, 안되더라.