2.详解DEBUG模式

news2025/7/19 11:36:04

文章目录

  • 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

在这里插入图片描述
可以支持在网页端调试
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/396059.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

图床搭建,使用typora上传

1. 准备gitee作为图床的仓库 新建仓库 准备仓库的私人令牌,后面配合使用 点击个人设置——》私人令牌 注意私人令牌,复制保存好,后面不能再看了 2. 准备PicGO,并进行相关配置 PicGo官方下载链接 下载安装好node.js,下载网址 安…

【银行测试】必看的四类题型:这可是最经典的一套题目了

目录:导读 一、根据题目要求写出具体LINUX操作命令 二、JMETER题目 三、根据题目要求写出具体SQL语句 四、测试案例设计题 金三银四面试面对大厂面试官提问,如何回答:花3天背完这100道软件测试面试题!银行测试的offer还不是手…

【GO】K8s 管理系统项目34[Linux环境–应用部署]

K8s 管理系统项目[Linux环境–应用部署] 1. 启动数据库 1.1 配置yum仓库 rm -f /etc/yum.repos.d/*.repo wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/…

Vue 实现图片监听鼠标滑轮滚动实现图片缩小放大功能

前言 其实想要实现功能很简单,就是在一张图片上监听鼠标滑轮滚动的事件,然后根据上滚还是下滚实现图片的缩放。 效果: 注:该配图使用《漫画|有趣的了解一下赋值、深浅拷贝》文章图片,不存在侵权问题。 实现思路 在…

规划数据指标体系方法(下)——新海盗模型

前面已经跟大家分享了规划数据指标体系的两种方法—— OSM 和 UJM 模型,分别从目标-策略以及用户旅途的角度阐述了规划数据指标体系的过程。今天我来跟大家分享最后一种规划数据指标体系的方法——新海盗模型。 了解新海盗模型 海盗模型,即 AARRR 模型&…

脑机接口科普0014——大脑

本文禁止转载!!!! 在提到脑机接口的时候,不得不提到大脑。 在我们的思维意识中,植物是没有大脑的。这是正确的。 在我们的思维意识中,动物都是有大脑的。 但是很明显,动物都有大…

程序员看过都说好的资源网站,你值得拥有。

程序员必备的相关资源网站一.技术社区1.GitHub2.Gitee(码云)3.稀土掘金4.OSCHINA开源中国5.CSDN6.博客园7.SegmentFault(思否)8.Stack Overflow9.Golang中文社区10.ChinaUnix11.51CTO12.Ruby China二.技术教程1.Devdocs2.码农教程…

案例解读| 从集中告警平台发展趋势看城商行如何落地数字化转型(二)

上期我们以具体案例入手,分享了集中告警平台到底应该与集中监控平台解耦还是紧绑定等问题。这一期依旧从具体案例切入,跟大家一起探索下告警与服务台的对接过程,以及这个过程中可能产生的问题。上期内容,一键回顾不迷路→案例解读…

17万字 JUC 看这一篇就够了(二) (精华)

今天我们继续来学习并发编程 17万字 JUC 看这一篇就够了(一) (精华) 线程池 基本概述 线程池:一个容纳多个线程的容器,容器中的线程可以重复使用,省去了频繁创建和销毁线程对象的操作 线程池作用: 降低资源消耗,减…

网络工程师面试题(面试必看)(1)

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.正题 1.TCP UDP协议的区别

YARN基本架构

主要由ResourceManager、NodeManager、ApplicationMaster和Container等组件构成,如图所YA示。 ResourceManager(RM) RM是全局资源管理器,负责整个系统的资源管理和分配 主要由两个组件构成:Scheduler调度器和应用程序…

ZYNQ嵌入式学习(5)

UARTUART简介发送FIFO接收FIFO模式切换寄存器操作中断和状态寄存器发送数据轮询中断接收数据轮询中断实验:串口中断数据环回UART简介 不需要了解时序。 UART是全双工异步收发的,没有时钟。 UART的操作通过配置和模式寄存器控制。 UART由独立的接受和发送…

Vue计算属性Computed

30. Vue计算属性Computed 1. 定义 Computed属性是Vue中的一个计算属性,是一种基于其它属性值计算而来的属性值,具有缓存机制,在依赖的属性值发生变化时会重新计算。 使用computed属性可以避免在模板中书写过多的计算逻辑,提高代…

【敏捷开发】jenkins「CI持续集成 CD持续部署」- 部署vue和go项目 - 待定

文章目录前言一、安装jenkins1. 部署中的痛点2. 什么是jenkins3. jenkins的安装和配置(1)下载(2)安装二、上传到运行服务器1. jenkins构建服务器流程2. 安装jenkins常用插件3. 通过freestyle构建项目4. 将构建服务器上的代码上传到…

Mybatis工程升级到FlunetMybatis后引发的问题以及解决方法

0. 背景交代为了提高开发速度,我打算将公司原有Mybatis框架升级为FlunetMybatis。可是遇到了一系列问题,下面开始爬坑工程结构示意如下:src/ ├── main │ ├── java.com.demo │ │ ├── Application.java //S…

常见数据模型

目录 1.1两类数据模型 1.2概念模型 1.3数据模型的组成要素 1.4常见数据模型 层次模型 网状模型 关系模型 数据模型是对现实世界数据特征的抽象,也就是说数据模型是用来描述数据、组织数据和对数据进行操作的。数据模型是数据库系统的核心和基础。 1.1两类数…

ip地址的分类及地址范围

IP地址根据网络ID的不同分为5种类型,A类地址、B类地址、C类地址、D类地址和E类地址。1、A类IP地址一个A类IP地址是指, 在IP地址的四段号码中,第一段号码为网络号码,剩下的三段号码为本地计算机的号码。A类IP地址中网络的标识长度为…

一种用于智能建筑云辅助检测的快速传感器放置位置优化方法

随着健康意识的觉醒,人们对居住的建筑提出了一系列与健康相关的要求,以期改善居住条件。在此背景下,BIM(Building Information Modeling)充分利用健康、环境、信息技术等诸多领域的前沿理论和技术,为工程师…

低代码开发的优势是什么?

低代码开发的优势是什么?低代码开发这个概念这两年来经常出现在人们的视野中,市场对于低代码的需求也越来越庞大。 Gartner预测,到2025年,75%的大型企业将使用至少四种低代码/无代码开发工具,用于IT应用开发和公民开发计划。 可…

Java面试题--Spring事务失效

Spring事务失效概述 Spring对事务的管理和处理,是基于AOP和编程范式的。因此Spring事务失效的场景较为丰富,包括但不限于以下常见情况: 异常被吞掉:当事务管理中出现异常但没有被正确捕捉并处理时,事务就会失效。例如…