这两个问题非常的影响开发效率,因此 Flask 引入了 debug 模式解决以上问题
错误示例
#!/usr/bin/python3
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
1/0
return '<b>hello world</b>'
if __name__ == '__main__':
app.run()
第七行,存在一个除以零的错误,在浏览器中访问 Flask ,会报错
浏览器中提示 Internal Server Error,表示服务端程序出现错误,但是没有给出错误的详细信息,即产生错误的文件、函数、行号等位置信息,排查错误非常不方便
开发 Flask 程序有如下 3 个步骤:
每次对 Flask 源程序进行修改后,都需要重启动 Flask 程序
例如,编写如下 Flask 程序:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return '<b>hello world</b>'
if __name__ == '__main__':
app.run()
程序的功能:访问页面 / 时,返回文本 ‘hello world’,现在希望返回文本 ‘HELLO WORLD’,需要做如下工作:
在开发的过程中,需要在编辑器、终端、浏览器这 3 个程序之间来回切换,非常的繁琐。
这个时候,我们就需要使用 Debug 模式来快速解决上面的这两个问题
Flask 程序可以运行在 Debug 模式下,Debug 模式提供了如下功能:
from flask import Flask
app = Flask(__name__)
if __name__ == '__main__':
app.run(debug = True)
加个 debug = True 就好啦
https://cloud.tencent.com/developer/article/1847223
FLASK_APP = 4_debug.py
FLASK_ENV = development
FLASK_DEBUG = 1
In folder /Users/polo/Downloads/Flask_learning
/usr/bin/python3 -m flask run
* Serving Flask app '4_debug.py' (lazy loading)
* Environment: development
* Debug mode: on
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 233-208-558
Debug mode: on,表示 Flask 程序已经进入了调试模式
浏览器中显示错误类型 ZeroDivisionError,并给出了错误的详细位置:文件名 line 15, in hello_world,给调试程序提供了方便
修改代码并保存,Flask 就能识别到修改,然后重新加载,下图是对应的控制台输出内容
这个时候直接再次访问浏览器就能看到修改后的效果了