網站后端Python+Flask .FLASK調試模式之開啟DEBUG與PIN使用?


自動加載:
# 方式一
|
1
2
|
if
__name__
=
=
'__main__'
:
app.run(host
=
'0.0.0.0'
, port
=
9000
, debug
=
True
)
|
# 方式二
|
1
2
3
|
if
__name__
=
=
'__main__'
:
app.debug
=
True
app.run(host
=
'0.0.0.0'
, port
=
9000
)
|
說明: 可通過如上兩種方式開啟調試模式,調試模式下PY文件被修改會自動重新加載,資源文件/模版文件/配置文件修改必須重啟生效~這個確實木有辦法~
異常調試:
# 代碼區
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
#
# Authors: limanman
# 51CTOBG: http://xmdevops.blog.51cto.com/
# Purpose:
#
"""
# 說明: 導入公共模塊
from
flask
import
Flask
# 說明: 導入其它模塊
app
=
Flask(__name__)
@app
.route(
'/'
)
def
hello_word():
return
None
if
__name__
=
=
'__main__'
:
app.run(host
=
'0.0.0.0'
, port
=
9000
, debug
=
True
)
|
# 顯示區
|
1
2
3
4
|
* Restarting with stat
* Debugger is active!
* Debugger pin code: 160-043-266
* Running on http://0.0.0.0:9000/ (Press CTRL+C to quit)
|
# 調試區
說明: 當錯誤發生時會自動返回一個能獲得錯誤上下文及可執行代碼的調試界面,WerkZeug為了安全性,在啟動時會生成一個隨機的PIN私人認證碼,當第一次啟動調試器進入錯誤堆棧模式時會強制輸入PIN碼,然后WerkZeug會將其存儲在COOKIE中,失效時間為8小時
在頁面的console控制台中,可以使用dump()打印出堆棧信息,使用dump(obj)打印某個地址的堆棧信息


在有些flask項目的控制台,如果看不到pin的信息“Debugger pin code: 323-115-793”,那么試着去日志里查看,因為這些信息會默認寫入根log日志里
其實,一旦引入日志模塊logging,控制台的很多信息(訪問網站記錄url、訪問數據庫信息、異常信息等)都會默認寫入根log日志文件中
參考:
1、http://blog.51cto.com/xmdevops/1865636
2、http://werkzeug.pocoo.org/docs/0.13/debug/

