在蓝图中的route已经指定templates、static路径,访问templatesOK,但是static下面文件访问404
很显然是static路径未定位到
userRoute = Blueprint('user', __name__, url_prefix='/user', template_folder='templates', static_folder='static')
html文件中的调用如下:
<link rel="stylesheet" href="{{ url_for('static', filename='css/base.css') }}">
查看create_app所在目录
尝试修改url_for('static' 为url_for('../static' 还是404
网上查看资料,了解到url_for只能识别到app根目录下的static目录,这样就将model/init中的create_app类移到根目录下,使create_app时从根目录初始化app-
修改create_app调整后目录如下
app.py
from flask import Flask
from flask_login import LoginManager
from common import db
login_manager = LoginManager()# 实例化登录管理对象
login_manager.login_view = "user.login"
#login_manager.login_view = "user.login" 指定了未登录时跳转的页面,即被拦截后统一跳到user/login这个路由下
def create_app(config_filename=None):
app = Flask(__name__) # 创建 Flask 应用
login_manager.init_app(app) # 初始化应用
if config_filename is not None:
app.config.from_pyfile(config_filename) # 注册数据访问信息
configure_database(app) # 初始化数据库
return app
def configure_database(app): #初始化数据库连接
print('数据库初始化')
db.init_app(app)