【问题标题】:Getting a 500 Internal Server Error using render_template and Flask [duplicate]使用 render_template 和 Flask 获取 500 内部服务器错误 [重复]
【发布时间】:2016-01-09 20:22:55
【问题描述】:

我正在尝试使用 Flask 来呈现 HTML 模板。我让它工作得很好,现在每次我得到一个500 Internal Server Error。如果我将 render_template 函数替换为一个字符串,则一切正常。我做错了什么?

初始化.py:

from flask import Flask, render_template

app = Flask(__name__)


@app.route('/')
def homepage():
    return render_template("main.html")

if __name__ == "__main__":
    app.run()

/templates/ 中的 main.html

<!DOCTYPE html>
<html lang="en">
<p>test</p>
</html>

【问题讨论】:

    标签: python html python-2.7 flask


    【解决方案1】:

    template_folder 必须定义在静态文件所在的位置。

    如果 main.html 文件与 init.py 位于同一文件夹中,则包含以下代码:

    import os
    
    project_root = os.path.dirname(__file__)
    template_path = os.path.join(project_root, './')
    
    app = Flask(__name__, template_folder=template_path)
    

    希望它现在可以工作。

    【讨论】:

      【解决方案2】:

      您的示例实际上对我有用。

      • 你运行的是什么版本的flask?

      • 您确定您访问的是端口 5000(默认)而不是端口 80 上的应用程序吗?

      • 服务器的旧实例是否仍在运行,这可能与重新启动服务器的尝试发生冲突?

      【讨论】:

      • Flask 版本:0.10.1,生成内部服务器错误的 URL:127.0.0.1:5000。我正在使用 PyCharm 并关闭了所有连接。