2.详解DEBUG模式
文章目录
- DEBUG模式解决了两个问题
- 四种开启DEBUG的方式
- 第一种
- 第二种
- 第三种
- 第四种
- DEBUG的PIN码可以在浏览器端调试代码使用(不推荐使用,了解就可以)
DEBUG模式解决了两个问题
- flask代码中如果出现了异常,我们在浏览器中不会提示具体的错误信息,开启debug模式后会把具体的错误信息发送到浏览器上。
- flask代码如果被修改了,必须要重启项目修改的代码才会有效,开启debug模式后我们修改了代码只要ctrl+s我们的flask项目就会自动重新加载,不需要手动加载整个网站。
例1:
此案例明显出现了一个数组越界的问题
from flask import Flask
app = Flask(__name__)@app.route('/')
def hello():a = [1,2,3,4]print(a[4])return "hello"if __name__ == '__main__':app.run()
访问如图
提示了服务器内部错误,并没有提示具体的错误原因
我们为app.run()添加参数改写为app.run(debug=True)
from flask import Flask
app = Flask(__name__)@app.route('/')
def hello():a = [1,2,3,4]print(a[4])return "hello"if __name__ == '__main__':app.run(debug=True)
再次访问如图
我们看到了具体的报错信息 IndexError: list index out of range
并且每次修改代码的时候按下ctrl+s保存一下都会自动重新加载flask项目代码,在此就不做演示了
!强调不要用快捷创建falsk的方式创建项目,就像创建一个普通的python项目一样,或者打开一个空的文件的方式创建,否则debug=True会无效
四种开启DEBUG的方式
第一种
from flask import Flask
app = Flask(__name__)@app.route('/')
def hello():a = [1,2,3,4]print(a[4])return "hello"if __name__ == '__main__':app.run(debug=True) # 设置
第二种
from flask import Flask
app = Flask(__name__)
app.debug = True # 设置@app.route('/')
def hello():a = [1,2,3,4]print(a[4])return "hello"if __name__ == '__main__':app.run()
第三种
from flask import Flask
app = Flask(__name__)
app.config.update(DEBUG=True) # 设置@app.route('/')
def hello():a = [1,2,3,4]print(a[4])return "hello"if __name__ == '__main__':app.run()
第四种
需要在app.py所在的目录里 再创建一个config.py,随着我们的学习会越来越多的用到这个配置文件,来配置我们的flask项目,注意配置的信息一般为大写。
config.py
DEBUG = True
app.py
from flask import Flask
import config # 导入
app = Flask(__name__)app.config.from_object(config) # 设置@app.route('/')
def hello():a = [1,2,3,4]print(a[4])return "hello"if __name__ == '__main__':app.run()
app.config 本质上继承的字典,是字典的子类的一个对象
DEBUG的PIN码可以在浏览器端调试代码使用(不推荐使用,了解就可以)
Debugger PIN: 648-906-962
可以支持在网页端调试
2.详解DEBUG模式相关推荐
- 详解Decorator模式和vistor模式
详解Decorator模式和vistor模式 这两个模式是我在软件构造课程学习期间最不理解的两种模式,也是趁着考试前几天的复习,重新梳理了一下 Decorator装饰器模式 顾名思义,装饰器模式就是给 ...
- 嵌入式基础01【转载】详解大端模式和小端模式
---------------- 版权声明:本文为CSDN博主「ce123」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog. ...
- 详解PPP模式下的产业投资基金运作【基金管理】
详解PPP模式下的产业投资基金运作[基金管理] 点击标题下「搏实资本」可快速关注 搏实资本 研究型的投资机构,实操型的专家团队 ﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ 一.产业投资基金概述 1.产业投资基 ...
- 详解大端模式和小端模式
详解大端模式和小端模式 嵌入式开发交流群280352802,欢迎加入! 一.大端模式和小端模式的起源 关于大端小端名词的由来,有一个有趣的故事,来自于Jonathan Swift的<格利佛游记& ...
- 详解大端模式和小端模式【转】
详解大端模式和小端模式 一.大端模式和小端模式的起源 本文转载自:http://blog.csdn.net/ce123/article/details/6971544 关于大端小端名词的由来,有一个有 ...
- Android签名详解(debug和release)
Android签名详解(debug和release) 1. 为什么要签名 1) 发送者的身份认证 由于开发商可能通过使用相同的Package Name来混淆替换已经安装的程序,以此保证签名不同的包不被 ...
- IE8开发人员工具使用详解下(模式,JS调试,探查器)
在上一篇文章IE8"开发人员工具"使用详解上(各级菜单详解)中,我们详细地讲解了IE8开发人员工具中各个菜单中命令的使用方法,相信很多朋友应该已经使用上了.而IE8开发人员工具更强 ...
- 我要打十个!详解建造者模式(builder pattern)
前言 "我要打十个",其实是我要打十个野怪! 这十个野怪呢,它们有不同的技能.装备和武器,长得也不一样.这里野怪是一个蛮复杂的对象,由各个不同的部分组成(技能.装备.武器等),不同 ...
- VMware虚拟机网络模式详解 NAT模式
本篇博文为<VMware虚拟机网络模式>系列的其中一篇:NAT模式. VMware虚拟机在我们学习过程中必不可少,不管是安装Linux操作系统来进行学习.搭建各种网络服务,拟或者是用来做集 ...
最新文章
- 程序员创业前要做哪些准备?
- 项目实践 | 行人跟踪与摔倒检测报警
- access 处理多少数据_access和excel的区别
- 发现藏匿在加密流量中的威胁
- PHP解决shell_exec has been disabled for security reasons
- ●BZOJ 3129 [Sdoi2013]方程
- Spring精华问答 | 什么是YAML?
- css-背景图片和渐变
- NHibernate学习导航
- 静态内部类、局部内部类、匿名内部类、lamda表达式
- 基于JAVA+SpringMVC+Mybatis+MYSQL的学生健康信息管理系统
- 多年前写的一个ASP.NET网站管理系统,到现在有些公司在用
- 关于博主 | 联系博主
- API文档自动生成,Swagger的配置
- U-Boot在FL2440上移植(四)----支持网卡DM9000和烧写yaffs文件系统
- 业务员的3个经典故事
- mac连续互通相机功能小技巧
- 【ArcGIS|空间分析|网络分析】9 使用位置分配选择最佳商店位置
- centos7.5 mysql5.6_Centos7下完美安装并配置mysql5.6
- MySQL一些随机函数记录
热门文章
- Linux usb设备驱动(2)--- usbmouse.c 源码分析
- 【Spring】IDEA中创建Spring项目
- 请评价一下中国的东北大学计算机水平如何
- 禁道具和连携击败姜世离的两种战术
- 题目:求1+2!+3!+...+20!的和
- H5/APP客服端源码/uniapp在线客服系统源码开源了,全源码代码解读及发行安装教程...
- java虚数复数计算_真实的虚数,不仅不是没用,而且还很实在
- 【计算机网络】计算机网络
- 蒙特卡洛方法的使用:计算pi值与积分计算
- Address Sanitizer 用法