专否 写文章

BlackA,Talk is cheap,Show me the code.

Oct 21, 2018
Follow

Flask 学习笔记 #2 -- Debug模式和配置文件

上一节我们已经成功的运行了第一个flask程序,在浏览器显示HelloWorld,然而在实际写程序的过程中,你可能会遇到各种各样的bug,调试bug是每一个程序员必备的技能,这一节我们就来学习如何利用flask提供的工具快速的调试错误。

1、从一个有问题的程序开始

下面是一个有问题的flask程序:

# debug_demo.py -- 一个有问题的flask程序

from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
    return "Hello World"

@app.route("/debug_demo")
def debug_demo():
    # 这行代码产生了一个除零错误
    return 1/0

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

我们来看下这段代码的运行效果:

当访问 127.0.0.1:5000 时,程序正常执行index函数,在浏览器上显示HelloWorld,当访问 127.0.0.1:5000/debug_demo 时,程序执行debug_demo函数,产生了一个除零错误,我们可以通过控制台上的日志看到这个错误的详细信息,但是在浏览器的窗口只是简单的显示了 500 Internal Server Error (服务器内部错误),看不到这个错误的详细信息,这就对开发人员很不友好,我们可以设置flask的debug模式来让浏览器显示错误的详细信息。

2、通过代码设置debug模式

可以在app.run()中传入一个关键字参数debug,设置app.run(debug = True),这样就可以设置当前项目为debug模式:

# debug_demo.py -- 一个有问题的flask程序

from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
    return "Hello World"

@app.route("/debug_demo")
def debug_demo():
    # 这行代码产生了一个除零错误
    return 1/0

if __name__ == "__main__":
    # 这里设置debug = True
    app.run(debug = True)

运行结果:

可以看到我们从程序已经处于debug模式(控制台的输出信息),并且在左侧的浏览器中显示了这个bug的详细信息。

3、通过配置文件来设置debug模式

可以在项目目录新建一个文件,我这里取名为config.py,然后通过代码将这个文件导入到当前项目,完整代码如下:

# config.py
DEBUG = True
# debug_demo.py -- 一个有问题的flask程序
from flask import Flask

# 导入config模块
import config
app = Flask(__name__)
# 这里设置使用config
app.config.from_object(config)

@app.route('/')
def index():
    return "Hello World"

@app.route("/debug_demo")
def debug_demo():
    # 这行代码产生了一个除零错误
    return 1/0

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

运行结果:

我们同样进入到了debug模式。

喜欢这个文章 | 分享 | 新建跟帖