Ste*_*vić 5 python flask python-3.x
我创建了一个基本的 python 脚本,使用 Flask 渲染 HTML 页面。在 Windows 10 上,该脚本可以完美地作为*.py文件运行,但当作为*.pyw文件运行时,页面不会呈现。
在任务管理器中,以*.pyw形式运行脚本后,Python 实例会在几秒钟内打开和关闭。
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def main():
return render_template('index.html')
if __name__ == '__main__':
app.run(debug=True, host="0.0.0.0", port=80)
Run Code Online (Sandbox Code Playgroud)
运行*.py版本,并将以下行添加到代码中:
import ctypes
...
...
...
if __name__ == '__main__':
cytypes.windll.user32.ShowWindow(ctypes.windll.kernel32.GetConsoleWindow(), 0)
app.run(debug=True, host="0.0.0.0", port=80)
Run Code Online (Sandbox Code Playgroud)
上面的代码隐藏了控制台,并成功启动了 Flask 应用程序。
但是,如果有人有想法,我仍然对解释为什么*.pyw方法不起作用感兴趣。
.pyw-files 将运行在pythonw.exe而不是python.exe. 不同之处在于,pythonw.exe默认情况下它不在控制台中运行,而是异步运行。这意味着 Flask 在后台启动并运行,直到其他一切终止。由于您的应用程序中没有任何其他内容,因此程序会直接结束。