Django-debug-toolbar的使用

Django项目的开发过程中,离不开各种调试,那么,我们今天介绍一个工具,django debug toolbar,该工具为我们提供了更加丰富的调试信息,如提供session信息,SQL查询信息等等。 该插件配置简单,功能齐全,在调试中相当方便,而且灵活轻便。那么我们此次就通过一个django的demo来演示该插件的用法。


环境:PyCharm2018 + Python3.5.4 + win10


No.1 下载django debug toolbar

pip install django-debug-toolbar

No.2 新建django的demo,来演示该工具的用法

pip install django==1.1                # 下载django
djnago-admin startproject UT              # 新建Django项目
cd UT                            # 切换到项目目录
python manage.py startapp app01            # 新建应用
python manage.py runserver 0.0.0.0:8888       # 启动项目

浏览器启动之后输入:http://127.0.0.1:8888/

OK,django项目创建完成,我们填充内容。

No.3 数据迁移

# 此时在项目目录
python manage.py makemigrations
python manage.py migrate

No.4 填充代码

 1 from django.conf.urls import include, url
 2 from django.contrib import admin
 3 from app01 import views
 4 from UT import settings
 5 urlpatterns = [
 6     # Examples:
 7     # url(r'^$', 'UT.views.home', name='home'),
 8     # url(r'^blog/', include('blog.urls')),
 9     # url(r'^$', views.index),
10     url(r'^admin/', include(admin.site.urls)),
11     url(r'^login/', views.login),
12     url(r'^index/', views.index),
13 
14 ]
15 
16 # 加上一个debug路由
17 
18 if settings.DEBUG:
19     import debug_toolbar
20     urlpatterns = [
21         url(r'^__debug__/',include(debug_toolbar.urls))
22     ] + urlpatterns
urls.py
 1 from django.shortcuts import render, redirect
 2 from app01 import models
 3 # Create your views here.
 4 
 5 
 6 
 7 
 8 def login(request):
 9     if request.method == 'GET':
10         return render(request,'login.html')
11     elif request.method == 'POST':
12 
13         user = request.POST.get('user')
14         pwd = request.POST.get('pwd')
15         # 下面两行代码把数据保存到数据库,然后有了用户名和密码,就可以注释掉了
16         # models.User.objects.create(user=user, pwd=pwd)
17         # models.User.objects.all()
18         # 查询
19         user_obj = models.User.objects.filter(user=user, pwd=pwd)
20         if user_obj:
21             u = user_obj.first()
22             print(u.user)
23             print(u.pwd)
24             request.session['a'] = user + pwd
25         return redirect('/index')
26 def index(request):
27     a = request.session['a']
28     print(a)
29     return render(request, 'index.html')
views.py
1 from django.db import models
2 
3 # Create your models here.
4 class User(models.Model):
5     user = models.CharField(max_length=32)
6     pwd = models.CharField(max_length=32)
models.py
 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta http-equiv="x-ua-compatible" content="IE=edge">
 6     <meta name="viewport" content="width=device-width, initial-scale=1">
 7     <title>index</title>
 8 
 9 </head>
10 <body>
11 <div>
12     <h1>successful</h1>
13 </div>
14 </body>
15 </html>
index.html
 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta http-equiv="x-ua-compatible" content="IE=edge">
 6     <meta name="viewport" content="width=device-width, initial-scale=1">
 7     <title>login</title>
 8 </head>
 9 <body>
10 <div>
11     <form action="http://127.0.0.1:8888/login/" method="post">
12         {% csrf_token %}
13         <input type="text" name="user" id="" placeholder="username">
14         <input type="password" name="pwd" id="" placeholder="password">
15         <input type="submit" name="" id="" value="提交">
16 
17     </form>
18     
19 </div>
20 </body>
21 </html>
login.html

No.5 配置django debug toolbar

1. 如果在本地调试的话, 在settings内添加:

INTERNAL_IPS = ['127.0.0.1', ]    

2. 在settings的INSTALLED_APPS添加。如下图所示:

'app01',            # 如果有则不用添加,一般创建的时候,django默认不添加
'debug_toolbar',    # 必填

 

3. 在settings内的MIDDLEWARE_CLASSES添加:

'debug_toolbar.middleware.DebugToolbarMiddleware',

注意,尽量往上添加,因为有些请求没有走完全部中间件就返回了,导致该工具没有检测到。

4. 在settings内配置jQuery的URL

注意,因为该工具默认引用的是:

JQUERY_URL = '//ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js'

Google的在国内估计要挂。所以我们要在下面配置jQuery的URL。

在settings内jQuery的URL配置如下:

DEBUG_TOOLBAR_CONFIG = {
    "JQUERY_URL": '//cdn.bootcss.com/jquery/2.2.4/jquery.min.js',
}

或者在源码中修改,打开C:\python35\Lib\site-packages\debug_toolbar\settings.py,打开这个toolbar的settings文件。更换引用地址。

如果,你项目也引用了jQuery,那么将该项置为空,那么toolbar也引用你项目的jQuery。

DEBUG_TOOLBAR_CONFIG = {
    "JQUERY_URL": '',
}

5. 在urls内添加,如下图所示:

if settings.DEBUG:
    import debug_toolbar
    urlpatterns = [
        url(r'^__debug__/',include(debug_toolbar.urls))
    ] + urlpatterns

No.6 使用

浏览器地址栏输入:http://127.0.0.1:8888/login/ 

注意,因为我之前已经在数据库里保存了用户名和密码,所以这里直接就登录了。你们可以打开views中的那两行注释, 先注册两个用户。

可以看到,右侧已经有了toolbar的图标了。这里需要注意的是,toolbar的使用必须应用在模板中,因为它也是模板渲染出来的,如果你用postman之类的,还玩个蛋蛋啊!

 

点击提交后,页面成功跳转到index,我们可以看到toolbar给我们提供了很多有用的信息,包括Versions版本信息,和其他的有用的信息。

如我们打开SQL,可以看到,这个请求经过了几次SQL操作,耗时多少,SQL操作在项目的什么位置都有显示,非常方便。

 


参考: 

  https://www.cnblogs.com/liwenzhou/p/9245507.html          # oldboy的大牛李文周的博客

  https://django-debug-toolbar.readthedocs.io/en/stable/installation.html       # django debug toolbar官网

  https://github.com/jazzband/django-debug-toolbar           # toolbar github

猜你喜欢

转载自www.cnblogs.com/Neeo/p/9292881.html
今日推荐