flask 中 使用blueprint后,html找不到

本文详细解析了在使用Flask框架时,如何正确配置蓝图(Blueprint)的模板路径,以确保render_template函数能准确找到并加载html文件,避免因路径设置不当导致的常见错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于如下一个简单的例子,其中login.html放在app同级文件夹templates之下

app=Flask('main',__name__,template_folder='./templates')
main=Blueprint('main',__name__)
app.register_blueprint(main)
@main.route('/',methods=['GET','POST'])
def login():
    return render_template('login.html')

该代码运行会报错:login.html无法找到

这个错误是因为我们的template_folder仍然是错误的。 对于render_template函数,它里面收到的地址是login.html , 但是由于它是经过蓝图main的路有函数进行路由的,所以,main的template_folder 没有被设置的话,它很可能就无法找到正确的template文件夹,从而找不到相应的html文件。

所以应该将main的template_folder确定下来:

app=Flask('main',__name__)
main=Blueprint('main',__name__,template_folder='./templates')
app.register_blueprint(main)
@main.route('/',methods=['GET','POST'])
def login():
    return render_template('login.html')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值