Jinja2无法读取指定完整路径的模板文件问题求助
解决Jinja2 render_template传入完整路径报错的问题
- 别直接给
render_template传绝对路径,Jinja2的这个方法默认是从预先配置的模板目录里找文件,不直接识别完整路径。 - 原生Jinja2的正确用法:先通过
FileSystemLoader指定模板所在目录,再加载模板渲染from jinja2 import Environment, FileSystemLoader # 配置模板目录 env = Environment(loader=FileSystemLoader('/var/www/xyz/template')) # 加载目标模板文件 template = env.get_template('_base_front.html') # 渲染并获取结果 rendered_html = template.render(data="pc") - 如果是用Flask框架,只需初始化时指定模板目录,直接传文件名就行:
from flask import Flask, render_template app = Flask(__name__, template_folder='/var/www/xyz/template') @app.route('/') def show_page(): return render_template('_base_front.html', data="pc") - 你之前的写法错在:不管是Flask封装的还是Jinja2原生的
render_template,第一个参数都不是绝对路径,而是模板文件名,路径要提前通过加载器配置好。
内容的提问来源于stack exchange,提问作者sitthykun
相关产品推荐
相关产品推荐

