溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

在flask中開(kāi)啟debug調(diào)試模式的方法

發(fā)布時(shí)間:2020-07-24 11:49:52 來(lái)源:億速云 閱讀:362 作者:清晨 欄目:編程語(yǔ)言

小編給大家分享一下在flask中開(kāi)啟debug調(diào)試模式的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

flask默認(rèn)是沒(méi)有開(kāi)啟debug模式的,開(kāi)啟debug模式有很多好處:

第一,可以幫助我們查找代碼里面的錯(cuò)誤,比如:

from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
    x = 10
    y = 0
    res = x/y
    print res
    return 'Hello World!'
if __name__ == '__main__':
    app.run()

我們都知道,除數(shù)是不能為0的,但是上面的代碼里y的值是0,我們運(yùn)行這段代碼,然后去地址查看,只能看到內(nèi)部服務(wù)錯(cuò)誤,但是沒(méi)有任何錯(cuò)誤原因的說(shuō)明,我們找起原因就會(huì)非常費(fèi)勁。

除了方便找到bug以外,還有另一個(gè)原因促使我們開(kāi)啟debug模式,就是如果我們不開(kāi)啟debug模式,我們修改了上面代碼里y的值不等于0,然后ctrl+s保存代碼,去頁(yè)面刷新頁(yè)面仍然是上圖,也就是說(shuō)Ctrl+s沒(méi)有重新加載代碼的運(yùn)行,如果我們每次修改代碼都要重新運(yùn)行代碼才能看到結(jié)果,是不是非常的不方便呢?以上兩個(gè)原因,讓我們需要開(kāi)啟debug模式:

開(kāi)啟debug模式只需要我們加一句app.debug = True即可。重新運(yùn)行代碼以后我們發(fā)現(xiàn)控制臺(tái)輸出的內(nèi)容也和之前不一樣了,系統(tǒng)會(huì)提示你重啟了服務(wù)并且開(kāi)啟了debug模式。(更多學(xué)習(xí)教程,請(qǐng)點(diǎn)擊億速云。)

現(xiàn)在去刷新頁(yè)面,會(huì)發(fā)現(xiàn)頁(yè)面提示了我們報(bào)錯(cuò)的原因:

而且在報(bào)錯(cuò)的最下面可以看到代碼報(bào)錯(cuò)的位置和原因:

現(xiàn)在我們來(lái)說(shuō)一下控制臺(tái)輸出的最后一行的PIN碼:

我們先來(lái)到報(bào)錯(cuò)頁(yè)面代碼報(bào)錯(cuò)的位置,將鼠標(biāo)放在報(bào)錯(cuò)語(yǔ)句上會(huì)看到后面有一個(gè)命令行樣子的圖標(biāo):

現(xiàn)在點(diǎn)擊那個(gè)圖標(biāo):

會(huì)發(fā)現(xiàn)頁(yè)面彈出了這么一個(gè)框:

上面說(shuō)著(翻譯):控制臺(tái)被鎖定,需要輸入PIN來(lái)解鎖。PIN已經(jīng)在你運(yùn)行服務(wù)(就是你的代碼)的shell(就是工具,我們用的是pychram)標(biāo)準(zhǔn)輸出里打印出來(lái)了,你可以在那里找到它。

我們把PIN碼粘貼過(guò)去就能看到:

我們可以直接在這里調(diào)試了,我們需要看一下y的值是不是真的是0,我們print y一下:

這樣就快速的定位到了問(wèn)題的所在了。而且這個(gè)PIN值是不需要你每次都輸入的,你只要輸入一次,8小時(shí)以?xún)?nèi)都不需要再次輸入的,因?yàn)閒lask會(huì)生成一個(gè)cookie信息,記錄你的登錄狀態(tài)。

當(dāng)然開(kāi)啟debug模式并不是只有上面一種方式:

app.run(debug=True)

# coding: utf-8

from flask import Flask

# __name__是用來(lái)確定flask運(yùn)行的主文件
app = Flask(__name__)

# 開(kāi)啟debug模式方法一
# app.debug = True

@app.route('/')
def hello_world():
    x = 10
    y = 0
    res = x/y
    print res
    return 'Hello World!'

if __name__ == '__main__':    
    # 開(kāi)啟debug模式方法二
    app.run(debug=True)

第三種開(kāi)啟debug的方法是通過(guò)配置文件

app.config.update(DEBUG=True)  

注意Debug必須要大寫(xiě)哦

# coding: utf-8

from flask import Flask

# __name__是用來(lái)確定flask運(yùn)行的主文件
app = Flask(__name__)

app.config.update(DEBUG=True)

@app.route('/')
def hello_world():
    x = 10
    y = 0
    res = x/y
    print res
    return 'Hello World!'

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

第四種開(kāi)啟方式——加載文件

我們新建一個(gè)名為configs的py文件,內(nèi)面寫(xiě):

# coding: utf-8
DEBUG = True

然后在代碼里先導(dǎo)入import configs再引用這個(gè)文件

app.config.from_object(configs)Ctrl+s保存就會(huì)看到設(shè)置生效了:

代碼如下:

# coding: utf-8

from flask import Flask
import configs

# __name__是用來(lái)確定flask運(yùn)行的主文件
app = Flask(__name__)

app.config.from_object(configs)

@app.route('/')
def hello_world():
    x = 10
    y = 0
    res = x/y
    print res
    return 'Hello World!'

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

此外,如果你不導(dǎo)入import configsconfigs文件想用配置,那你也可以將上面代碼里的app.config.from_object(configs)修改為

app.config.from_object('configs')就是加個(gè)引號(hào),這樣也是可以的。

看完了這篇文章,相信你對(duì)在flask中開(kāi)啟debug調(diào)試模式的方法有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI