Python瓶子框架错误500:can';无法在守护进程模式下找到模板
我目前正在使用Python开发一个简单的Web应用程序。以下是我的应用程序结构: 结构Python瓶子框架错误500:can';无法在守护进程模式下找到模板,python,wsgi,bottle,Python,Wsgi,Bottle,我目前正在使用Python开发一个简单的Web应用程序。以下是我的应用程序结构: 结构 lib - bottle.py - bottledaemon.py - lockfile.py - __init__.py view - dashboard.tpl run.py 这是我的run.py代码: #!/usr/bin/env python from lib.bottle import route, template, run, debug, request
lib
- bottle.py
- bottledaemon.py
- lockfile.py
- __init__.py
view
- dashboard.tpl
run.py
这是我的run.py代码:
#!/usr/bin/env python
from lib.bottle import route, template, run, debug, request, static_file
from lib.bottledaemon import daemon_run
debug(mode=True)
@route('/')
def show_index():
return template('dashboard')
# If the following line is enabled, the server will start in non-Daemon mode.
#run(host='0.0.0.0', port=80, debug=True)
# If the following lines are enabled, the server will start in Daemon mode.
if __name__ == "__main__":
daemon_run()
因此,我希望WSGI服务器通过将其传递给服务器来在守护进程中运行
问题
在非后台运行代码时,它可以工作。它向我显示了正确的模板,在CLI中我可以看到HTTP请求
但是,当我在守护模式下运行相同的代码时,它确实作为守护进程启动,因此工作正常,但它再也找不到模板了。它向我显示了以下错误消息:
错误:500内部服务器错误
抱歉,请求的URL“这是我的网站URL”导致错误:
找不到模板“Template”
因此,当我以守护模式启动Web服务器时,似乎再也找不到.tpl文件的文件路径了。我已经尝试了很多东西,但是我想不出答案,我想保持路径的动态性。有什么建议吗
谢谢 这可能是一个路径问题,我可以重新创建它,并通过手动将视图文件夹的路径添加到模板路径列表来修复它
from bottle import route, template, run, debug, request, static_file, TEMPLATE_PATH
from bottledaemon import daemon_run
import os
TEMPLATE_PATH.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "view")))
# rest of script
编辑:
追溯到问题的根源,这肯定是一个路径问题
battledaemon
导入daemon
并运行DaemonContext
,默认情况下将工作目录更改为'/'
,并且battledaemon
不会像它应该的那样覆盖它。因此,当瓶子寻找视图
文件夹的一个relative路径时,它实际上是在系统根目录上寻找“/view” 回溯(最近一次调用):文件“run.py”,第6行,在模板_PATH.insert(0,os.PATH.abspath(os.PATH.join(os.PATH.dirname(_File_),“view”))中)name错误:名称“TEMPLATE_PATH”未定义查看顶行,您需要将其添加到导入列表谢谢mate!现在守护进程再次启动。仍然是同样的500个错误。我必须在您提供的代码中插入某个静态路径吗?不应该这样做,奇怪的是,您提供的错误表明它正在查找'Template'Template'
,而您指定的是仪表板
。我建议将dashboard.tpl
重命名为template.tpl
,看看现在是否显示它。谢谢你这么多修改它!!我被困在这上面好几个小时了