zoukankan      html  css  js  c++  java
  • 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 【单页面实现与代码优化】

  • 相关阅读:
    Spark2 Dataset DataFrame空值null,NaN判断和处理
    Spark2 文件处理和jar包执行
    &与&&, |与||区别
    Scala实现乘法口诀
    Hive desc
    Hive FUNCTIONS函数
    Hive show
    MySQL行列转换拼接
    MySQL字符串连接
    SQLServer之索引简介
  • 原文地址:https://www.cnblogs.com/zhzhang/p/11229990.html
Copyright © 2011-2022 走看看