文章目录

  • DEBUG模式解决了两个问题
  • 四种开启DEBUG的方式
    • 第一种
    • 第二种
    • 第三种
    • 第四种
    • DEBUG的PIN码可以在浏览器端调试代码使用(不推荐使用,了解就可以)

DEBUG模式解决了两个问题

  1. flask代码中如果出现了异常,我们在浏览器中不会提示具体的错误信息,开启debug模式后会把具体的错误信息发送到浏览器上。
  2. 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模式相关推荐

  1. 详解Decorator模式和vistor模式

    详解Decorator模式和vistor模式 这两个模式是我在软件构造课程学习期间最不理解的两种模式,也是趁着考试前几天的复习,重新梳理了一下 Decorator装饰器模式 顾名思义,装饰器模式就是给 ...

  2. 嵌入式基础01【转载】详解大端模式和小端模式

    ---------------- 版权声明:本文为CSDN博主「ce123」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog. ...

  3. 详解PPP模式下的产业投资基金运作【基金管理】

    详解PPP模式下的产业投资基金运作[基金管理] 点击标题下「搏实资本」可快速关注 搏实资本 研究型的投资机构,实操型的专家团队 ﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ 一.产业投资基金概述 1.产业投资基 ...

  4. 详解大端模式和小端模式

    详解大端模式和小端模式 嵌入式开发交流群280352802,欢迎加入! 一.大端模式和小端模式的起源 关于大端小端名词的由来,有一个有趣的故事,来自于Jonathan Swift的<格利佛游记& ...

  5. 详解大端模式和小端模式【转】

    详解大端模式和小端模式 一.大端模式和小端模式的起源 本文转载自:http://blog.csdn.net/ce123/article/details/6971544 关于大端小端名词的由来,有一个有 ...

  6. Android签名详解(debug和release)

    Android签名详解(debug和release) 1. 为什么要签名 1) 发送者的身份认证 由于开发商可能通过使用相同的Package Name来混淆替换已经安装的程序,以此保证签名不同的包不被 ...

  7. IE8开发人员工具使用详解下(模式,JS调试,探查器)

    在上一篇文章IE8"开发人员工具"使用详解上(各级菜单详解)中,我们详细地讲解了IE8开发人员工具中各个菜单中命令的使用方法,相信很多朋友应该已经使用上了.而IE8开发人员工具更强 ...

  8. 我要打十个!详解建造者模式(builder pattern)

    前言 "我要打十个",其实是我要打十个野怪! 这十个野怪呢,它们有不同的技能.装备和武器,长得也不一样.这里野怪是一个蛮复杂的对象,由各个不同的部分组成(技能.装备.武器等),不同 ...

  9. VMware虚拟机网络模式详解 NAT模式

    本篇博文为<VMware虚拟机网络模式>系列的其中一篇:NAT模式. VMware虚拟机在我们学习过程中必不可少,不管是安装Linux操作系统来进行学习.搭建各种网络服务,拟或者是用来做集 ...

最新文章

  1. 程序员创业前要做哪些准备?
  2. 项目实践 | 行人跟踪与摔倒检测报警
  3. access 处理多少数据_access和excel的区别
  4. 发现藏匿在加密流量中的威胁
  5. PHP解决shell_exec has been disabled for security reasons
  6. ●BZOJ 3129 [Sdoi2013]方程
  7. Spring精华问答 | 什么是YAML?
  8. css-背景图片和渐变
  9. NHibernate学习导航
  10. 静态内部类、局部内部类、匿名内部类、lamda表达式
  11. 基于JAVA+SpringMVC+Mybatis+MYSQL的学生健康信息管理系统
  12. 多年前写的一个ASP.NET网站管理系统,到现在有些公司在用
  13. 关于博主 | 联系博主
  14. API文档自动生成,Swagger的配置
  15. U-Boot在FL2440上移植(四)----支持网卡DM9000和烧写yaffs文件系统
  16. 业务员的3个经典故事
  17. mac连续互通相机功能小技巧
  18. 【ArcGIS|空间分析|网络分析】9 使用位置分配选择最佳商店位置
  19. centos7.5 mysql5.6_Centos7下完美安装并配置mysql5.6
  20. MySQL一些随机函数记录

热门文章

  1. Linux usb设备驱动(2)--- usbmouse.c 源码分析
  2. 【Spring】IDEA中创建Spring项目
  3. 请评价一下中国的东北大学计算机水平如何
  4. 禁道具和连携击败姜世离的两种战术
  5. 题目:求1+2!+3!+...+20!的和
  6. H5/APP客服端源码/uniapp在线客服系统源码开源了,全源码代码解读及发行安装教程...
  7. java虚数复数计算_真实的虚数,不仅不是没用,而且还很实在
  8. 【计算机网络】计算机网络
  9. 蒙特卡洛方法的使用:计算pi值与积分计算
  10. Address Sanitizer 用法