django中debug
django-debug-toolbar
【django中debug】单元测试工具 https://django-debug-toolbar.readthedocs.io/en/latest/installation.html安装 切换项目所在的虚拟环境
pip installdjango-debug-toolbar
settings.py
INSTALLED_APPS = [
...
'debug_toolbar',]STATIC_URL = '/static/'
在主 urls.py中配置url
if settings.DEBUG:
import debug_toolbar
urlpatterns.append(path("__debug__/",include(debug_toolbar.urls)))
中间件
MIDDLEWARE = [
'debug_toolbar.middleware.DebugToolbarMiddleware', #必须在最前面
...
]
settings.py中做如下配置
#django-debug-toolbarINTERNAL_IPS= ['127.0.0.1']
# Application definition
DEBUG_TOOLBAR_PANELS = [
# 代表是哪个django版本
'debug_toolbar.panels.versions.VersionsPanel',
# 用来计时的,判断加载当前页面总共花的时间
'debug_toolbar.panels.timer.TimerPanel',
# 读取django中的配置信息
'debug_toolbar.panels.settings.SettingsPanel',
# 看到当前请求头和响应头信息
'debug_toolbar.panels.headers.HeadersPanel',
# 当前请求的想信息(视图函数,Cookie信息,Session信息等)
'debug_toolbar.panels.request.RequestPanel',
# 查看SQL语句
'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',
]DEBUG_TOOLBAR_CONFIG = {}
优化sql查询
def index(request):
count = settings.ONE_PAGE_NEWS_COUNT
#newses = News.objects.order_by('-pub_time')[0:count]
# newses = News.objects.all()[0:count]如果按照这个来讲每页两篇文章
一篇文章 多两次外键查询查询 类别还有 作者多篇文章就乘以二
#提前一次外键查询不至于模板中进行 多余查询
#select_related('category','author') 就是进行 外键的查询 每个页面只需要执行一次即可
newses = News.objects.select_related('category','author').all()[0:count]
categories = NewsCategory.objects.all()
context = {
'newses': newses,
'categories': categories,
}
return render(request, 'news/index.html', context=context)def news_detail(request,news_id):
try:
#news = News.objects.get(pk=news_id)
#news = News.objects.select_related('category','author').get(pk=news_id)
news = News.objects.select_related('category','author').prefetch_related('comments__author').get(pk=news_id)
#prefetch_related('comments__author') 注意这里是两个下划线
context = {
'news':news
}
return render(request, 'news/news_detail.html', context=context)
except News.DoesNotExist:
raise Http404
推荐阅读
- 热闹中的孤独
- Shell-Bash变量与运算符
- JS中的各种宽高度定义及其应用
- 2021-02-17|2021-02-17 小儿按摩膻中穴-舒缓咳嗽
- 深入理解Go之generate
- 异地恋中,逐渐适应一个人到底意味着什么()
- 我眼中的佛系经纪人
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售
- “成长”读书社群招募
- 2020-04-07vue中Axios的封装和API接口的管理