Flask 的 debug 模式
使用 Flask 开发过程中存在两个常见的问题:
1. 开发中的常见问题
1.1 没有提示错误的详细信息
#!/usr/bin/python3
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
/
return '<b>hello world</b>'
if __name__ == '__main__':
app.run()
开发 Flask 程序有如下 3 个步骤:
- 编辑 Flask 源程序
- 在命令行中启动 Flask 程序
- 在浏览器中访问 Flask 程序
每次对 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()
在开发的过程中,需要在编辑器、终端、浏览器这 3 个程序之间来回切换,非常的繁琐。
2. Flask 的 Debug 模式
2.1 简介
Flask 程序可以运行在 Debug 模式下,Debug 模式提供了如下功能:
调用 Flask 应用的 run 方法时,设置参数 Debug = True,启动 Flask 程序的调试模式。编写程序 debug-on.py 如下:
在第 5 行,app.run(debug = True),启动 Flask 程序的调试模式。运行程序,输出如下:
$ python3 debug.py
* Serving Flask app "debug" (lazy loading)
* Environment: production
* Debug mode: on
* Restarting with stat
* Debugger is active!
* Debugger PIN: 316-471-540
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
在第 4 行,Debug mode: on,表示 Flask 程序已经进入了调试模式。
2.2 提示错误的详细信息
编写一个包含错误的 Flask 程序 error-debug-on.py,代码如下:
#!/usr/bin/python3
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
/
return '<b>hello world</b>'
if __name__ == '__main__':
app.run(debug = True)
2.3 修改源码不用重启
编写 Flask 程序
#!/usr/bin/python3
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return '<b>hello world</b>'
if __name__ == '__main__':
app.run(debug = True)
启动 Flask 程序
在终端启动 Flask 程序,显示如下:
修改 Flask 程序
终端中显示: * Detected change in ‘/home/guest/reload.py’, reloading
,表示 Flask 程序检测到 reload.py 发生了变化,重新加载。
3. 小结
本节首先介绍了影响开发效率的两个常见问题,讲解 Flask 中的 debug 模式的功能,通过具体的例子,讲解 debug 模式的两个主要优点:
使用思维导图总结如下: