首页 > 其他分享 >123456

123456

时间:2022-09-07 22:14:43浏览次数:91  
标签:123456 django contrib debug panels toolbar delete

django-debug-toolbar使用详解

简介

django-debug-toolbar是django开发中必备神器,可以帮助快速了解项目的整体信息以及每个页面包括sql信息,http相关信息,方便去优化。

官方网址

官方文档

安装及使用

安装

配置settings.py

  1. 把debug_toolbar添加进INSTALLED_APPS
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app01',
  	'debug_toolbar'  # debug_toolbar必须放在staticfiles的后面
]
  1. Middleware中间件的配置

最后一个就是我们需要的配置

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
  
    'debug_toolbar.middleware.DebugToolbarMiddleware'  
]
  1. 配置ip地址

本地测试的话只需要填写本地回环地址就好了

INTERNAL_IPS = ('127.0.0.1')
  1. 组件选项

默认值为如下12个组件,可根据需要自行调整。不写代表使用默认值。

DEBUG_TOOLBAR_PANELS = [
    'debug_toolbar.panels.versions.VersionsPanel',
    'debug_toolbar.panels.timer.TimerPanel',
    'debug_toolbar.panels.settings.SettingsPanel',
    'debug_toolbar.panels.headers.HeadersPanel',
    'debug_toolbar.panels.request.RequestPanel',
    'debug_toolbar.panels.sql.SQLPanel',
    'debug_toolbar.panels.staticfiles.StaticFilesPanel',
    'debug_toolbar.panels.templates.TemplatesPanel',
    'debug_toolbar.panels.cache.CachePanel',
    'debug_toolbar.panels.signals.SignalsPanel',
    'debug_toolbar.panels.logging.LoggingPanel',
    'debug_toolbar.panels.redirects.RedirectsPanel',
]

配置路由

配置路由的时候,如果是路由分发的话,那么需要把该路由配置到总路由中。

from django.contrib import admin
from django.urls import path,include,re_path
# 总路由
# urlpatterns = [
#    path('admin/', admin.site.urls),
#    path('app01/',include(('app01.urls','app01'),namespace='app01'))
#]
from djangoLibrary import settings  # 注意 djangoLibrary是项目名,不是模块 
if settings.DEBUG:
    import debug_toolbar
    urlpatterns = [
        re_path('__debug__/', include(debug_toolbar.urls))
    ] + urlpatterns

开始使用

image

sweetAlert插件使用详解

网址

官方网址

cdn

   <script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"></script>

使用注意点

  1. 当绑定的点击事件的a标签用了有名无名反向解析时,需要取消有无名反向解析地址,不然会解析到我们配置的删除的路由,触发了视图函数,会直接删除数据库的数据,后续该按钮事件会停止。

  2. 我是用了一个隐藏的input标签来获取用户点击时标签带的id值,然后通过ajax传递到前端,方式应该有多种

  3. 每次删除成功后,应设置自动刷新:window.location.href='[请求路径]',否则已经删除的数据还会显示在页面上,除非手动刷新

$('.btnDelete').click(function () { 
  swal({
    title: "确定删除吗?",
    text: "一旦删除,数据将无法恢复,请谨慎操作",
    icon: "warning",
    buttons: ['取消','确定'],
    dangerMode: true,
  }).then((willDelete) => {
      let delete_id=$('#hiddenId').val()
      console.log(delete_id)
    if (willDelete) {
      $.ajax({
          url:'{% url 'app01:delete_view' %}',
          type:'post',
          data:{'delete_id':delete_id},
          success:function () {
          }
      })
        swal("删除成功", {
        icon: "success",
      },
      );
      function f() {
        window.location.href='{% url 'app01:home_view' %}'
    }
    setTimeout(f,1000)  // 让页面等待个一秒再刷新
    } else {
      swal("删除已取消");
      return false
    }
  });
  1. 后端获取,因为是ajax中type的请求方式为post,那么就需要用post请求获取id
  2. 效果展示
class Delete(views.View):
    def post(self,request):
        delete_id=request.POST.get('delete_id')
        models.Book.objects.filter(pk=delete_id).delete()
        return redirect('/app01/home/')

image

标签:123456,django,contrib,debug,panels,toolbar,delete
From: https://www.cnblogs.com/xunfei001/p/16667452.html

相关文章