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 ...
随机推荐
- SQL SERVER获取表在哪些存储过程中使用过
1.获取某张表在哪些存储过程中使用到 select distinct object_name(id) from syscomments where id in (select object_id fr ...
- k8s强制删除资源
一般强制删除 kubernetes 的资源: kubectl delete <resource> <resourename> --grace-period=0 --force ...
- 什么是RSA
一.RSA引入: RSA是什么,嗯,这是一个好问题,有没有兴趣啊 二.RSA的解释: RSA是一种加密方式,它是现代密码学的代表(什么是现代密码学,这个吗,我感觉就是我们所使用的密码的加密的方式之一可 ...
- Java流程控制01——用户交互Scanner
用户交互Scanner sacnner对象 之前的语法并没有实现程序与人的交互.java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入. 基本语法: S ...
- 使用AVPro Video在Unity中播放开场视频(CG)笔记
游戏中的开场CG(播放视频),采用的插件为AVPro Video1.x(和W的版本一致),Unity版本为2018.4.0f1 Asset Store:AVPro Video - Core Andro ...
- srt文件的时间轴平移处理
有时srt字幕文件与视频文件的时间不完全吻合,有一个时间差,这就需要对srt文件的时间轴进行平移,具备这个功能的软件很多,比如:Subtitle Tool, subresync, sabbu, Sub ...
- SpringBoot JPA查询映射到自定义实体类
和 SegmentFault上的文章(https://segmentfault.com/a/1190000021869465)一样, 都是俺账号 场景 举一个简单的栗子: 比如有一个User实体类 @ ...
- L298N使用资料
L298N驱动连接arduino小车电机(代码和使用): https://www.cnblogs.com/fsong/p/12309911.htmlarduino UNO 连接L298N驱动两个电机转 ...
- Windows莫名内存到百分之百,需要修改虚拟内存
借鉴别人的操作: https://blog.csdn.net/xjpdf10/article/details/82849112
- Linux 记录学习