Django 上下文处理器

Posted niuxingyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 上下文处理器相关的知识,希望对你有一定的参考价值。

上下文处理器可以在 settings 中的  TEMPLATES 模板配置内看都有什么上下文处理器

也可以自己写好方法在模板配置内添加

定义的方法

#导入时间模块
import datetime

#定义一个上下文处理器方法
def get_daytime(reqeust):
    ip = reqeust.META[REMOTE_ADDR]
    #获取当前时间

    nowtime = datetime.datetime.now().strftime(%Y-%m-%d %H:%M:%S)
    my_hour = int(datetime.datetime.now().strftime(%H))
    if my_hour > 1 and my_hour <= 7:
        now_str = 早上好
    elif my_hour > 7 and my_hour <= 11:
        now_str = 上午好
    elif my_hour > 11 and my_hour <= 18:
        now_str = 下午好
    else:
        now_str = 晚上好
    #给模板传递参数
    return locals()

将写好方法在模板配置内添加

#模板配置
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,
                #定义自定义上下文处理器的位置
                supermarket.context_processor.get_daytime
            ],
        },
    },
]

 

以上是关于Django 上下文处理器的主要内容,如果未能解决你的问题,请参考以下文章

什么时候适合使用 Django 上下文处理器?

django基础——上下文处理器

Django模板继承下的动态数据传递—上下文处理器

如何在多片段活动中处理 onContextItemSelected?

Django 上下文处理器不工作?

如何在 Django Summernote 中显示编程片段的代码块?