首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获得一个500内部服务器错误,即使有几个类似问题中建议的修复

获得一个500内部服务器错误,即使有几个类似问题中建议的修复
EN

Stack Overflow用户
提问于 2020-02-15 09:40:04
回答 1查看 281关注 0票数 0

我遇到了这两个问题/答案中描述的相同问题:

Python WSGI + Flask render_template - 500 Internal Server Error?

Getting a 500 Internal Server Error using render_template and Flask

我把范围缩小到以下几点:

下面是文件结构:

代码语言:javascript
运行
复制
../project/
    project.py
    templates/
        about.html

我仍然得到这个错误(shorten):

代码语言:javascript
运行
复制
● project.service - Gunicorn instance to serve project
   Loaded: loaded (/etc/systemd/system/project.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2020-02-15 06:28:46 UTC; 3min 28s ago
 Main PID: 3942 (gunicorn)
    Tasks: 4 (limit: 1151)
   CGroup: /system.slice/project.service
           ├─3942 /home/dev/project/project_env/bin/python3.6 /home/dev/project/project_env/bin/gunicorn --workers 3 --bind unix:project.sock -m 007 wsgi
           ├─3967 /home/dev/project/project_env/bin/python3.6 /home/dev/project/project_env/bin/gunicorn --workers 3 --bind unix:project.sock -m 007 wsgi
           ├─3968 /home/dev/project/project_env/bin/python3.6 /home/dev/project/project_env/bin/gunicorn --workers 3 --bind unix:project.sock -m 007 wsgi
           └─3969 /home/dev/project/project_env/bin/python3.6 /home/dev/project/project_env/bin/gunicorn --workers 3 --bind unix:project.sock -m 007 wsgi

Feb 15 06:29:17 project gunicorn[3942]:     return self._load_template(name, self.make_globals(globals))
Feb 15 06:29:17 project gunicorn[3942]:   File "/home/dev/project/project_env/lib/python3.6/site-packages/jinja2/environment.py", line 857, in _load_template
Feb 15 06:29:17 project gunicorn[3942]:     template = self.loader.load(self, name, globals)
Feb 15 06:29:17 project gunicorn[3942]:   File "/home/dev/project/project_env/lib/python3.6/site-packages/jinja2/loaders.py", line 117, in load
Feb 15 06:29:17 project gunicorn[3942]:     source, filename, uptodate = self.get_source(environment, name)
Feb 15 06:29:17 project gunicorn[3942]:   File "/home/dev/project/project_env/lib/python3.6/site-packages/flask/templating.py", line 60, in get_source
Feb 15 06:29:17 project gunicorn[3942]:     return self._get_source_fast(environment, template)
Feb 15 06:29:17 project gunicorn[3942]:   File "/home/dev/project/project_env/lib/python3.6/site-packages/flask/templating.py", line 89, in _get_source_fast
Feb 15 06:29:17 project gunicorn[3942]:     raise TemplateNotFound(template)
Feb 15 06:29:17 project gunicorn[3942]: jinja2.exceptions.TemplateNotFound: about.html

所以据我所知,问题是最后一行

代码语言:javascript
运行
复制
Feb 15 06:29:17 project gunicorn[3942]: jinja2.exceptions.TemplateNotFound: about.html

我不明白为什么,即使文件/文件夹在那里。我能找到的最接近的评论是:

https://stackoverflow.com/a/56589998/12070612

代码语言:javascript
运行
复制
ENV = jinja2.Environment(loader=jinja2.FileSystemLoader(str(root_path / 'templates')))
template = ENV.get_template(your_template_name)

但如果我加上"ENV=...“代码行添加到我的project.py文件中,然后Gunicorn抱怨并无法启动进程。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-15 14:09:28

在Flask中有不同的方法来呈现HTML。您可以简单地从Python代码直接生成该超文本标记语言,类似于您对home路由所做的操作,或者您也可以使用像Jinja这样的模板语言。

您在about路由中编写的是render_template函数。render_template的工作方式是读取一个带有您作为参数传递的名称的超文本标记语言文件,并呈现该模板。在本例中,您调用了render_template方法并要求它呈现一个名为about.html的模板,但由于该模板不存在,因此无法加载并抛出异常。

在与app.py文件相同的级别创建一个about.html文件,并在其中键入内容,然后尝试渲染。应该能行得通。

要阅读有关render_template的更多信息,请查看文档here或阅读Flask here入门教程

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60235344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档