• Python之Django之views中视图代码重复查询的优化


    Django框架中views视图中如果多个函数都有同样的查询语句,例如:

    allcategory = Category.objects.all()
    remen = Article.objects.filter(tui__id=2)[:6]
    tags = Tag.objects.all()

    如果不优化,会导致每执行一次函数,都会重新查询一遍数据库,现进行简要优化:步骤如下

    第一步,将以上三行语句拷贝出来,重构成一个独立的函数如下:

    def global_variable(request):
        allcategory = Category.objects.all()
        remen = Article.objects.filter(tui__id=2)[:6]
        tags = Tag.objects.all()
        return locals()

    第二步:在项目主文件settings.py文件中更新模板配置

    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [os.path.join(BASE_DIR, 'templates')]
            ,
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                    'blog.views.global_variable',
                ],
            },
        },
    ]

    第三步:将views.py文件所有带上述三个查询的函数中此三行删除。

    over,大功告成!

    如此只需要查询一次数据库,便可以给众多的函数使用。

    转自:https://www.django.cn/course/show-51.html 【单页面实现与代码优化】

  • 相关阅读:
    PHP数组处理总结
    设计模式之-工厂模式理解
    我的世界观
    编程入门
    2019 新的一年
    placeholder 不支持ie8
    2018年8月20日
    HttpClientUtil
    通用mapper
    small_demo
  • 原文地址:https://www.cnblogs.com/zhzhang/p/11229990.html
Copyright © 2020-2023  润新知