我正在尝试渲染文件home.html.该文件存在于我的项目中,但是jinja2.exceptions.TemplateNotFound: home.html当我尝试渲染它时,我会继续这样做.为什么Flask找不到我的模板?
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def home():
return render_template('home.html')
Run Code Online (Sandbox Code Playgroud)
/myproject
app.py
home.html
Run Code Online (Sandbox Code Playgroud) Jinja2是否支持模板相对路径,例如%(here)s/other/template.html,包含相对于当前模板在文件系统中的位置的其他模板?
我正在使用pyinstaller构建我的烧瓶应用程序,一切正常,除了我遇到Jinja2模板的问题.
它给了我jinja2.exceptions.TemplateNotFound,
我试图把from app import template哪个是模板文件夹,但它不起作用(我猜因为它们不包含任何py文件).
我也尝试更改.spec文件以包含该templates文件夹
added_files = [
( '..\\CommerceApp\\app\\templates', 'templates' ),
( '..\\CommerceApp\\app\\static', 'static' )
]
a = Analysis(['..\\CommerceApp\\run.py'],
pathex=['D:\\PythonProjects\\CommerceAppExe'],
binaries=None,
datas=added_files,
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
Run Code Online (Sandbox Code Playgroud)
但它也不起作用,就像我自己手动复制文件夹一样.
有没有办法包含与.exe捆绑在一起的模板?
编辑
这是我的spec档案
# -*- mode: python -*-
block_cipher = None
a = Analysis(['..\\CommerceApp_withPyInstaller\\run.py'],
pathex=['D:\\PythonProjects\\CommerceAppExe'],
binaries=None,
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts, …Run Code Online (Sandbox Code Playgroud)