From d78f18e2c88ca0dcd98f732803a66fe5f656b695 Mon Sep 17 00:00:00 2001 From: plqo32bax <3547574347@qq.com> Date: Sun, 12 Oct 2025 21:50:58 +0800 Subject: [PATCH] Update context_processors.py --- src/context_processors.py | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/context_processors.py b/src/context_processors.py index 73e3088..98416db 100644 --- a/src/context_processors.py +++ b/src/context_processors.py @@ -4,40 +4,60 @@ from django.utils import timezone from djangoblog.utils import cache, get_blog_setting from .models import Category, Article - +# 获取当前模块的logger对象 logger = logging.getLogger(__name__) def seo_processor(requests): +""" + SEO处理器函数,用于生成包含SEO相关信息和网站设置的上下文数据 + 该结果会被缓存以提高性能 + Args: + requests: Django的request对象,用于获取当前请求信息 + Returns: + dict: 包含SEO设置和网站配置的字典 + """ +# 缓存键名 key = 'seo_processor' +# 尝试从缓存获取数据 value = cache.get(key) if value: return value else: logger.info('set processor cache.') + # 获取博客设置 setting = get_blog_setting() +# 构建包含SEO和网站设置的字典 value = { + # 基本站点信息 'SITE_NAME': setting.site_name, + # 广告相关设置 'SHOW_GOOGLE_ADSENSE': setting.show_google_adsense, 'GOOGLE_ADSENSE_CODES': setting.google_adsense_codes, 'SITE_SEO_DESCRIPTION': setting.site_seo_description, 'SITE_DESCRIPTION': setting.site_description, 'SITE_KEYWORDS': setting.site_keywords, 'SITE_BASE_URL': requests.scheme + '://' + requests.get_host() + '/', + # 文章相关设置 'ARTICLE_SUB_LENGTH': setting.article_sub_length, + # 导航数据 'nav_category_list': Category.objects.all(), 'nav_pages': Article.objects.filter( type='p', status='p'), + # 评论系统设置 'OPEN_SITE_COMMENT': setting.open_site_comment, + # 备案和统计代码 'BEIAN_CODE': setting.beian_code, 'ANALYTICS_CODE': setting.analytics_code, "BEIAN_CODE_GONGAN": setting.gongan_beiancode, "SHOW_GONGAN_CODE": setting.show_gongan_code, + # 其他信息 "CURRENT_YEAR": timezone.now().year, "GLOBAL_HEADER": setting.global_header, "GLOBAL_FOOTER": setting.global_footer, "COMMENT_NEED_REVIEW": setting.comment_need_review, } + # 将结果缓存10小时(60秒*60分钟*10) cache.set(key, value, 60 * 60 * 10) return value