1.9.2 调试异常

PyCharm的调试模式无法调试模板文件,而模板文件需要使用Django的模板语法,若想调试模板文件,则最有效的方法是查看PyCharm或浏览器提示的异常信息。

调试异常需要根据项目运行时所产生的异常信息进行分析,使用浏览器访问路由地址的时候,如果出现异常信息,就可以直接查看异常信息找出错误位置。比如在templates的模板文件index.html里添加错误的代码,如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello World</title>
</head>
<body>
    {# 添加错误代码static#}
    {% static %}
    <span>Hello World!!</span>
</body>
</html>

当运行MyDjango项目并在浏览器访问127.0.0.1:8000的时候,PyCharm正下方的调试界面Console就会出现异常信息,从异常信息中可以找到具体的异常位置,如图1-20所示。

图1-20 异常信息

除了在PyCharm正下方的调试界面Console查看异常信息外,还可以在浏览器上分析异常信息,比如模板文件index.html的错误语法,Django还能标记出错位置,便于开发者调试和跟踪,如图1-21所示。

图1-21 异常信息

还有一种常见的情况是网页能正常显示,但网页内容出现部分缺失。对于这种情况,只能使用浏览器的开发者工具对网页进行分析处理。以templates的模板文件index.html为例,对其添加正确的代码,但在网页里出现内容缺失,如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello World</title>
</head>
<body>
    {# 添加正确代码,但不出现在网页 #}
    <div>Hi,{{ value }}</div>
    <span>Hello World!!</span>
</body>
</html>

再次启动MyDjango项目并在浏览器访问127.0.0.1:8000的时候,浏览器能正常访问网页,但无法显示{{ value }}的内容,打开浏览器的开发者工具看到,{{ value }}的内容是不存在的,如图1-22所示。

图1-22 开发者工具

此外,浏览器的开发者工具对于调试AJAX和CSS样式非常有用。通过生成的网页内容进行分析来反向检测代码的合理性是常见的手段之一,这是通过校验结果与开发需求是否一致的方法来调试项目功能的。