Xin chào. Mình có chút vấn đề với Blueprint trong Flask Python. Mình muốn dùng Blueprint để tách phần router ra khỏi launcher khi tạo app. Để re-structure lại folder theo kiên trúc MVC. Nhưng khi render templates ở trong router thì lỗi.
Folder structure
|-- routers
|-- __init__.py
|-- router.py # có thể tách thành nhiều router nhưng mình demo 1 cái
|-- views
|-- statics
|-- css
|-- js
|-- img
|-- templates
|-- home.html
|-- launcher.py # chỉ run app, không để router trong phần này
File launcher.py
from flask import Flask
from routers import app_router
app = Flask(__name__)
app.register_blueprint(app_router)
if __name__ == "__main__":
app.run()
File routers/init.py
from flask import Blueprint
app_router = Blueprint('app_router', __name__)
from .router import *
File routers/router.py
from . import app_router
from flask import render_template
@app_router.route("/")
def home():
return render_template("home.html") # error with static, template folder
Mình đã thử set templates folder, static_url_path, static_folder attribute khi tao app hoặc tạo blueprint nhưng cứ gặp 2 lỗi
werkzeug.routing.BuildError: Could not build url for endpoint ‘home’. Did you mean ‘static’ instead?
jinja2.exceptions.TemplateNotFound: home.html
class flask.Blueprint(static_folder=None, static_url_path=None, template_folder=None, url_prefix=None, root_path=None)
class flask.Flask(static_url_path=None, static_folder='static', template_folder='templates', root_path=None)
Help me, Tks