Debug模式、Host、Port配置
Debug 模式、Host、Port 这 3 个配置项分别代表是否开启调试模式、项目运行使用的 Host(可以先简单理解为访问项目的域名)、项目运行监听的端口号。这 3 个配置项单独拿出来讲,是因为它们在项目开发中使用的频率非常高,并且使用的是不同的开发工具,所以配置方式也不同。为了讲解方便,这里首先创建一个新的项目 demo02,读者可以自行下载相关代码学习。下面分别学习这 3 个配置项的意义和配置方式。
Debug模式
在使用 Flask 框架开发项目的过程中,会不断地添加新代码或者修改原代码,如果没有开启 Debug 模式,那么在修改代码后,必须要手动重新启动项目才能看到运行效果,这样会大大降低开发效率。所以一般在开发时,都会开启 Debug 模式,这样在代码修改完成后,只要单击 “保存” 按钮,或者按 Ctrl+S 快捷键,那么 Flask 将会自动重启项目。另外,如果程序出错了,在开启 Debug 模式下,在浏览器端会显示错误信息,并且标记错误行号,对于定位 bug(故障)有非常大的帮助。那么 Debug 模式怎么打开呢?这要根据是否使用 PyCharm Professional 版来决定,以下分别进行讲解。
-
在 PyCharm Professional 版中开启 Debug 模式
如果你使用的是 PyCharm Professional 版,则需要单击右上角 demo02(即项目名称)右侧下拉按钮,然后在弹出的下拉列表中选择 Edit Configurations 命令,如图 2-1 所示。
Figure 1. 图2-1 编辑项目配置在打开的本项目的编辑界面选中 FLASK_DEBUG 复选框,然后单击 OK 按钮即可,如图 2-2 所示。
Figure 2. 图2-2 选中FLASK_DEBUG复选框下面单击右上角的运行按钮运行项目,便可以看到在 PyCharm 控制台显示已经开启了 Debug 模式,如图 2-3 所示。
Figure 3. 图2-3 开启Debug模式接下来打开浏览器,在浏览器的地址栏中输入 http://127.0.0.1:5000,可以看到网页中显示 Hello World!。现在返回到 PyCharm 中,将字符串 Hello World! 修改成 Hello Flask!,然后按 Ctrl+S 快捷键保存代码,可以看到 PyCharm 的控制台会自动地重新加载项目,如图 2-4 所示。
Figure 4. 图2-4 重新加载项目生成的日志信息在项目重新加载完成后,回到浏览器中,重新访问 http://127.0.0.1:5000,可以看到网页上的显示信息已经变成了 Hello Flask!。在这个过程中我们不需要手动地重启项目,这大大提高了开发效率。
-
在非 PyCharm Professional 版中开启 Debug 模式
如果使用的是其他软件编写 Flask 项目,如 PyCharm Community 或 Vistual Studio Code 等,那么需要在 app.run 方法调用时,添加 debug=True 参数。在 PyCharm Community 版中打开项目并添加 debug=True 参数,如图 2-5 所示。

因为 PyCharm Community 版中没有集成 Flask 的运行模式,所以运行 Flask 项目时需要按照常规的 Python 程序来执行,也就是在 app.py 文件的任意空白处右击,然后在弹出的快捷菜单中选择 Run 'app' 命令,如图 2-6 所示。
开始运行 app.py 后,即可在 PyCharm Community 的控制台看到日志信息,也可以看到 Debug 模式已经被开启了,如图 2-7 所示。
以上便是 Debug 模式的开启方式,读者可以根据实际情况进行设置。Debug 模式在开发过程中调试代码、定位 bug 非常方便,但是在项目部署上线后,记得一定要关闭 Debug 模式,否则项目一旦出现异常,相关代码就会显示在浏览器上,很容易被有心之人利用,从而威胁网站的安全。


设置 Host 和 Port
Host 代表的是主机,Port 代表的是端口号。下面举一个实际的例子来简单解释 Host 和 Port。例如,百度首页网址为 https://www.baidu.com:443 ,其中冒号前面的 www.baidu.com 即为 Host,冒号后面的 443 即为 Port。百度首页网址用的是 https 协议,因为 https 协议默认监听的是 443 端口,所以在访问百度首页网址时,即使没有写明 443 端口,浏览器也会自动请求百度服务器的 443 端口,即通过 https://www.baidu.com 就可以访问到百度首页。
运行 Flask 项目后,如图2-7 所示,可以看到控制台的打印信息 Running onhttp://127.0.0.1:5000,此时的 Host 是 127.0.0.1,Port 是 5000。如何修改 Host 和 Port 呢?这也要看是否使用的是 PyCharm Professional 版。下面分别进行讲解。
-
PyCharm Professional版修改Host和Port
首先,同修改 Debug 模式一样,先单击右上角项目名称旁的下拉按钮,然后在弹出的下拉列表中选择 Edit Configurations 命令,如图 2-8 所示。
Figure 8. 图2-8 PyCharm Professional编辑项目配置打开编辑窗口后,找到 Additional options,如图 2-9 所示。
首先来修改 Port,在 Additional options 文本框中添加 “--port=8000” (port 前面两个 “-”),然后单击 OK 按钮,如图 2-10 所示。回到 PyCharm Professional 主面板后,再单击运行按钮,即可在 PyCharm Professional 控制台看到项目监听的端口已经从之前的 5000 变成了 8000,如图 2-11 所示。
以后我们再访问此项目时,就需要通过 http://127.0.0.1:8000 来访问了。
读者可能会好奇,在什么情况下需要修改 Port 呢?假设现在需要运行两个 Flask 项目 A 和 B,如果不修改端口号,则 A 和 B 两个项目监听的都是 5000 端口,这样会导致其中一个项目不能被访问到。此时我们可以将 B 项目的端口号修改成 8000,以后在浏览器中访问 http://127.0.0.1:5000 就是 A 项目,访问 http://127.0.0.1:8000 就是 B 项目,这样就能非常明确地区分开来。总而言之,在 5000 端口被占用的情况下,都可以通过修改 Port 来让项目正常地运行起来。
Figure 9. 图2-9 添加额外参数Figure 10. 图2-10 设置Port参数Figure 11. 图2-11 修改Port后的日志信息接下来修改 Host。修改 Host 的步骤与修改 Port 是一样的,在 Additional options 文本框中添加一个 “--host=0.0.0.0” 参数即可,如图 2-12 所示。
Figure 12. 图2-12 添加Host配置Host 不是修改成什么都可以的,必须是以下三种之一。
本机的局域网 IP 地址。IP 地址在 Windows 系统下可以在 cmd 命令行终端中输入 ipconfig 命令查看,在 Mac 或者 Linux 下系统可以通过 ifconfig 命令查看。如
查看笔者的局域网 IP 地址,如图 2-13 所示。
Figure 13. 图2-13 查看笔者的局域网IP地址如果设置成了局域网 IP 地址,那以后不管是自己的计算机访问,还是局域网中其他设备访问,都需要通过局域网 IP 地址才能访问到。
-
127.0.0.1:代表本机的 IP 地址。如果设置成本机的 IP 地址,则项目只能在自己的计算机上访问。局域网中其他用户不能访问。
-
0.0.0.0:代表既可以通过 127.0.0.1 访问,也可以通过局域网 IP 地址访问。
如果在项目中想让局域网中的其他用户访问,一般会把 Host 设置成 0.0.0.0,这样别人能通过运行项目的计算机的局域网 IP 地址访问到项目,在本机上也可以通过 127.0.0.1 访问到项目。如图 2-12 所示设置,读者可以在家中同一个局域网下,用手机打开浏览器,输入 http://局域网IP地址:8000 ,也可以访问到计算机上运行的 Flask 项目。
-
