django-debug-toolbar使用详解
简介
django-debug-toolbar是django开发中必备神器,可以帮助快速了解项目的整体信息以及每个页面包括sql信息,http相关信息,方便去优化。
官方网址
安装及使用
安装
配置settings.py
- 把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的后面
]
- 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'
]
- 配置ip地址
本地测试的话只需要填写本地回环地址就好了
INTERNAL_IPS = ('127.0.0.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
开始使用
sweetAlert插件使用详解
网址
cdn
<script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"></script>
使用注意点
-
当绑定的点击事件的
a标签
用了有名无名反向解析时,需要取消有无名反向解析地址,不然会解析到我们配置的删除的路由,触发了视图函数,会直接删除数据库的数据,后续该按钮事件会停止。 -
我是用了一个隐藏的input标签来获取用户点击时标签带的id值,然后通过ajax传递到前端,方式应该有多种
-
每次删除成功后,应设置自动刷新:
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
}
});
- 后端获取,因为是ajax中
type
的请求方式为post,那么就需要用post请求获取id - 效果展示
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/')
标签:123456,django,contrib,debug,panels,toolbar,delete
From: https://www.cnblogs.com/xunfei001/p/16667452.html