Python Flask错误代码400,消息错误的请求版本

gtk*_*gtk 9 python flask python-3.x

网站代码

\n\n
from flask import *\n\napp = Flask(__name__)\n\n\n@app.route("/<name>")\ndef user(name):\n    return f"Hello {name}!"\n\n\n@app.route("/")\ndef home():\nreturn render_template("index.html")\n\n\n@app.route("/admin")\ndef admin():\n    return redirect(url_for("home"))\n\n\nif __name__ == "__main__":\n    app.run()\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果我去http://127.0.0.1:5000/那里没有问题,但是当我去https://127.0.0.1:5000/(这次是https而不是http)时,我收到以下错误

\n\n
127.0.0.1 - - [17/Nov/2019 17:43:25] code 400, message Bad request version (\'y\\x03\xc3\x90\xc3\xa3\\x80\xc2\xa8R\xc2\xbe3\\x8e\xc3\x9c\xc2\xbd\\x90\xc3\x8f\xc3\xb1\\x95\xc2\xae\xc2\xa2\xc3\x92\\x97\\x90<\xc3\x99\xc2\xa6\\x00$\\x13\\x01\\x13\\x03\\x13\\x02\xc3\x80+\xc3\x80/\xc3\x8c\xc2\xa9\xc3\x8c\xc2\xa8\xc3\x80,\xc3\x800\xc3\x80\')\n
Run Code Online (Sandbox Code Playgroud)\n\n

该错误code 400, message Bad request version基本上是我所期望的,因为我没有设置 SSL,也没有声明网站在收到 https 请求时应该做什么。我很好奇的是这些奇怪的符号是什么意思(y\\x03\xc3\x90...等等)。这涉及多个问题,例如:它们来自哪里?python 代码是否尝试访问没有特定数据的随机内存位置?数据是否只是控制台无法处理的格式?这是什么意思?你明白了。

\n

blu*_*eth 6

You're missing the ssl_context in app.run() which configures Flask to run with HTTPS support.

请参阅这篇文章

如果这只是为了测试,您可以使用adhoc模式。

if __name__ == "__main__":
    app.run(ssl_context="adhoc")
Run Code Online (Sandbox Code Playgroud)