|
|
|
@ -1,43 +1,43 @@
|
|
|
|
import logging
|
|
|
|
import logging #ZNY 导入日志模块
|
|
|
|
|
|
|
|
|
|
|
|
from django.utils import timezone
|
|
|
|
from django.utils import timezone #ZNY 导入Django时区工具
|
|
|
|
|
|
|
|
|
|
|
|
from djangoblog.utils import cache, get_blog_setting
|
|
|
|
from djangoblog.utils import cache, get_blog_setting #ZNY 导入缓存工具和博客设置获取函数
|
|
|
|
from .models import Category, Article
|
|
|
|
from .models import Category, Article #ZNY 导入分类和文章模型
|
|
|
|
|
|
|
|
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
logger = logging.getLogger(__name__) #ZNY 获取当前模块的日志记录器
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def seo_processor(requests):
|
|
|
|
def seo_processor(requests): #ZNY 定义SEO上下文处理器函数
|
|
|
|
key = 'seo_processor'
|
|
|
|
key = 'seo_processor' #ZNY 设置缓存键名
|
|
|
|
value = cache.get(key)
|
|
|
|
value = cache.get(key) #ZNY 尝试从缓存获取数据
|
|
|
|
if value:
|
|
|
|
if value: #ZNY 如果缓存存在
|
|
|
|
return value
|
|
|
|
return value #ZNY 直接返回缓存数据
|
|
|
|
else:
|
|
|
|
else: #ZNY 如果缓存不存在
|
|
|
|
logger.info('set processor cache.')
|
|
|
|
logger.info('set processor cache.') #ZNY 记录设置缓存日志
|
|
|
|
setting = get_blog_setting()
|
|
|
|
setting = get_blog_setting() #ZNY 获取博客设置
|
|
|
|
value = {
|
|
|
|
value = { #ZNY 构建上下文数据字典
|
|
|
|
'SITE_NAME': setting.site_name,
|
|
|
|
'SITE_NAME': setting.site_name, #ZNY 网站名称
|
|
|
|
'SHOW_GOOGLE_ADSENSE': setting.show_google_adsense,
|
|
|
|
'SHOW_GOOGLE_ADSENSE': setting.show_google_adsense, #ZNY 是否显示谷歌广告
|
|
|
|
'GOOGLE_ADSENSE_CODES': setting.google_adsense_codes,
|
|
|
|
'GOOGLE_ADSENSE_CODES': setting.google_adsense_codes, #ZNY 谷歌广告代码
|
|
|
|
'SITE_SEO_DESCRIPTION': setting.site_seo_description,
|
|
|
|
'SITE_SEO_DESCRIPTION': setting.site_seo_description, #ZNY 网站SEO描述
|
|
|
|
'SITE_DESCRIPTION': setting.site_description,
|
|
|
|
'SITE_DESCRIPTION': setting.site_description, #ZNY 网站描述
|
|
|
|
'SITE_KEYWORDS': setting.site_keywords,
|
|
|
|
'SITE_KEYWORDS': setting.site_keywords, #ZNY 网站关键词
|
|
|
|
'SITE_BASE_URL': requests.scheme + '://' + requests.get_host() + '/',
|
|
|
|
'SITE_BASE_URL': requests.scheme + '://' + requests.get_host() + '/', #ZNY 网站基础URL
|
|
|
|
'ARTICLE_SUB_LENGTH': setting.article_sub_length,
|
|
|
|
'ARTICLE_SUB_LENGTH': setting.article_sub_length, #ZNY 文章摘要长度
|
|
|
|
'nav_category_list': Category.objects.all(),
|
|
|
|
'nav_category_list': Category.objects.all(), #ZNY 导航分类列表
|
|
|
|
'nav_pages': Article.objects.filter(
|
|
|
|
'nav_pages': Article.objects.filter( #ZNY 导航页面列表
|
|
|
|
type='p',
|
|
|
|
type='p', #ZNY 过滤类型为页面
|
|
|
|
status='p'),
|
|
|
|
status='p'), #ZNY 过滤状态为发布
|
|
|
|
'OPEN_SITE_COMMENT': setting.open_site_comment,
|
|
|
|
'OPEN_SITE_COMMENT': setting.open_site_comment, #ZNY 是否开启全站评论
|
|
|
|
'BEIAN_CODE': setting.beian_code,
|
|
|
|
'BEIAN_CODE': setting.beian_code, #ZNY ICP备案号
|
|
|
|
'ANALYTICS_CODE': setting.analytics_code,
|
|
|
|
'ANALYTICS_CODE': setting.analytics_code, #ZNY 网站统计代码
|
|
|
|
"BEIAN_CODE_GONGAN": setting.gongan_beiancode,
|
|
|
|
"BEIAN_CODE_GONGAN": setting.gongan_beiancode, #ZNY 公安备案号
|
|
|
|
"SHOW_GONGAN_CODE": setting.show_gongan_code,
|
|
|
|
"SHOW_GONGAN_CODE": setting.show_gongan_code, #ZNY 是否显示公安备案
|
|
|
|
"CURRENT_YEAR": timezone.now().year,
|
|
|
|
"CURRENT_YEAR": timezone.now().year, #ZNY 当前年份
|
|
|
|
"GLOBAL_HEADER": setting.global_header,
|
|
|
|
"GLOBAL_HEADER": setting.global_header, #ZNY 全局头部内容
|
|
|
|
"GLOBAL_FOOTER": setting.global_footer,
|
|
|
|
"GLOBAL_FOOTER": setting.global_footer, #ZNY 全局尾部内容
|
|
|
|
"COMMENT_NEED_REVIEW": setting.comment_need_review,
|
|
|
|
"COMMENT_NEED_REVIEW": setting.comment_need_review, #ZNY 评论是否需要审核
|
|
|
|
}
|
|
|
|
}
|
|
|
|
cache.set(key, value, 60 * 60 * 10)
|
|
|
|
cache.set(key, value, 60 * 60 * 10) #ZNY 将数据存入缓存,有效期10小时
|
|
|
|
return value
|
|
|
|
return value #ZNY 返回上下文数据
|