Python Flask 中关于 500 Internal Server Error 的问题

Posted

技术标签:

【中文标题】Python Flask 中关于 500 Internal Server Error 的问题【英文标题】:Problem about 500 Internal Server Error in Python Flask 【发布时间】:2020-06-24 13:36:00 【问题描述】:

这是我的 Python 代码:

from flask import Flask, render_template

app = Flask(__name__)

@app.route("/profile/<name>")

def profile(name):
  return render_template("index.html", name=name)

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

和 HTML 代码:

<!DOCTYPE html>
<html>
    <head>

    </head>

    <body>
        Hello  name 
    </body>
</html>

当我运行 Python 代码时,它会在浏览器上显示:

Internal Server Error
The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

我在 Google 和 Youtube 上寻找解决方案,但仍然无法解决。有人可以帮我弄这个吗?谢谢

编辑:所以我需要做的就是修复这一行:

app = Flask(__name__, template_folder="template")

【问题讨论】:

能否请您切换到调试模式 app.run(debug=True) 以便向我们提供更多详细信息? @Charles R 现在说“jinja2.exceptions.TemplateNotFound jinja2.exceptions.TemplateNotFound: index.html” 所以你的寺庙可能不在正确的目录中。默认情况下 template_forders="templates" 带有复数 S,您指定的模板不带 S 【参考方案1】:

每当我们在 Python wsgi 应用程序上收到 500 个内部服务器错误时,我们都可以使用“日志记录”来记录它

第一次导入from logging import FileHandler,WARNING

然后在app = Flask(__name__, template_folder = 'template')之后 添加

file_handler = FileHandler('errorlog.txt')
file_handler.setLevel(WARNING)

然后你可以运行应用程序,当你收到 500 Internal server error 时,cat/nano 你的 errortext.txt 文件来读取它,它会告诉你错误是由什么引起的。

【讨论】:

【参考方案2】:

您可以通过在 @app.route 中添加类型字符串来尝试以下操作:

@app.route("/profile/<string:name>")
def profile(name):
  return render_template("test.html", name=name)

【讨论】:

【参考方案3】:

    中间不能有空行 @app.route("/profile/&lt;name&gt;")def profile(name):

    您必须将 html 文件设置在名为 templates 的文件夹中。

    必须将templates文件夹和run.py设置在同一个文件夹中

【讨论】:

我按照您所说的一切进行操作,但仍然无法正常工作,浏览器一直提示“内部服务器错误服务器遇到内部错误,无法完成您的请求。服务器过载或存在是应用程序中的错误。”

以上是关于Python Flask 中关于 500 Internal Server Error 的问题的主要内容,如果未能解决你的问题,请参考以下文章

求教大神,java中关于String类的getBytes()方法的问题

python中关于本地文件的API

oracle中关于clob类型字段的查询效率问题

python中关于文件的操作

python中关于发邮件的示例

有关python2与python3中关于除的不同