Flask(6)- debug 模式
使用 Flask 开发过程中存在两个常见的问题
- 当 Flask 程序出错时,没有提示错误的详细信息
- 修改 Flask 源代码后需要重启 Flask 程序
这两个问题非常的影响开发效率,因此 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 程序
每次对 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’,需要做如下工作:
- 切换到编辑器,编辑 Flask 源程序,将 ‘hello world’ 修改为 ‘HELLO WORLD’
- 切换到终端,终止原先运行的 Flask 程序,再次运行 Flask 程序
- 切换到浏览器,访问页面 /
在开发的过程中,需要在编辑器、终端、浏览器这 3 个程序之间来回切换,非常的繁琐。
这个时候,我们就需要使用 Debug 模式来快速解决上面的这两个问题
Flask 的 Debug 模式
Flask 程序可以运行在 Debug 模式下,Debug 模式提供了如下功能:
- 当 Flask 程序出现错误时,在浏览器中提示错误的详细信息
- 修改 Flask 程序代码后,Flask 程序会自动重新加载,不需要重启 Flask 程序,即可在浏览器中看到修改后的效果
开启 debug 模式
from flask import Flask
app = Flask(__name__) if __name__ == '__main__':
app.run(debug = True)
加个 debug = True 就好啦
如果加了还是不生效呢?
https://www.cnblogs.com/poloyy/p/14993520.html
debug 模式开启后的控制台输出
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
修改代码并保存,Flask 就能识别到修改,然后重新加载,下图是对应的控制台输出内容

这个时候直接再次访问浏览器就能看到修改后的效果了
总结
Flask(6)- debug 模式的更多相关文章
- flask开启debug模式的两种方法、加载配置文件的两种方法、URL传参的四种方法
from flask import Flask app = Flask(__name__) # app.config.update(DEBUG=True)#开启debug模式 #加载配置文件方法一 # ...
- flask使用debug模式时,存在错误时,会占用设备内存直至服务重启才释放;debug模式会开启一个守护进程(daemon process)
函数调用顺序flask的app.py的run-->werkzeug的serving.py的run_simple-->调用werkzeug的debug的__init__.py里的类Debug ...
- flask的debug模式下,网页输入pin码进行调试
网站后端Python+Flask .FLASK调试模式之开启DEBUG与PIN使用? 自动加载: # 方式一 1 2 if __name__ == '__main__': app.run(ho ...
- 【python】flask 开启 debug 模式
方法一: 直接在run的时候添加debug from flask import Flask app = Flask(__name__) @app.route('/') def hello_world( ...
- Flask 在 Debug 模式下初始化2次
请移步: http://blog.zengrong.net/post/2632.html https://stackoverflow.com/questions/9449101/how-to-stop ...
- Flask debug 模式 PIN 码生成机制安全性研究笔记
Flask debug 模式 PIN 码生成机制安全性研究笔记 0x00 前言 前几天我整理了一个笔记:Flask开启debug模式等于给黑客留了后门,就Flask在生产网络中开启debug模式可能产 ...
- 在pycharm_2018.2版本中开启Flask的debug的方法 (不要用命令:python **.py启动)
断点后,先ctl+c关闭控制台程序,再点击debuger调试 问题描述:在pycharm_2018.2版本中,我明确开启了debug,代码如下所示: from flask import Flask a ...
- Ques1,debug模式打不开的原因
我尝试过一下三种方法打开pycharm环境下Flask的debug模式,但是都失败了.这三种具体方法如下: 1, 2, 3, 可以说上述方法都是常规操作,可是为啥还是不能打开debug模式呢? 因为: ...
- flask debug 模式开启
debug 模式开启 最近在写python flask 的Waf后台管理界面,想要启用调试模式,发现安装目前网上流行的两种方式均无法在我的Pycharm中打开调试模式. )直接在对象上设置 app.d ...
随机推荐
- Python - 解包的各种骚操作
为什么要讲解包 因为我觉得解包是 Python 的一大特性,大大提升了编程的效率,而且适用性很广 啥是解包 个人通俗理解:解开包袱,拿出东西 正确理解:将元素从可迭代对象中一个个取出来 python ...
- 配置多个git用的ssh key
参考 http://www.sail.name/2018/12/16/ssh-config-of-mac/ 有一点注意 Host 的名字和 HostName改为一致. 因为从git仓库复制的地址是全程 ...
- NSIS 制作自动升级包
1:首先定义基础变量 !define PRODUCT_NAME "XXX"//补丁名称 !define PRODUCT_VERSION "3"//版本号 !de ...
- clickhouse的windowFunnel(漏斗)
1.WindowFunnel 关于官网的解释: Returned value:Integer. The maximum number of consecutive triggered conditio ...
- Python成员运算,身份运算和流程控制
成员运算 in #判断--在--里面 print('a' in 'abcd') # 字符串判断a是否在abcd里面 print('you' in 'how are you') # 这种整体也可以判断 ...
- SQL 练习2
查询同时存在" 01 "课程和" 02 "课程的情况 分析:分别先查询出包含有01课程和02课程 SELECT * from sc WHERE cid='01' ...
- noip35
T1 考场乱搞出锅了... 正解: 把原序列按k往左和往右看成两个序列,求个前缀和,找下一个更新的位置,直接暴跳. Code #include<cstdio> #include<cs ...
- FileUtils 文件工具类
FileUtils 下载jar中的文件 package com.meeno.chemical.common.utils; import lombok.extern.slf4j.Slf4j; impor ...
- CSS3图片倒影技术
http://bbs.itheima.com/thread-330315-1-1.html?wymlxt
- 0x800b010a 证书
无论是装微软的什么应用,只要报这个错误,下载这个证书: http://download.microsoft.com/download/2/4/8/248D8A62-FCCD-475C-85E7-6ED ...
