Django自定义上下文处理器(context_processor)动态读取共用部分数据

上下文处理器(context_processor)定义一次,能实现共用数据的在项目里的每个页面上重复使用。比如:最新文章

1、在APP目录中创建自定义的上下文处理器文件。如:app_context_processor.py

2、在创建的文件中定义函数示例代码。如下

from .models import Article

#共用部分数据自定议上下文
def myapp_context_processor(request):
    articles = Article.objects.order_by('-datetime')[:10]
    return {'articles': articles}

3、在项目settings.py文件中加入自定义上下文。如下

TEMPLATES = [
    {
       ......
        'OPTIONS': {
            'context_processors': [
                ......
                'myapp.app_context_processor.myapp_context_processor', #自定议上下文
            ],
        },
    },
]

4、直接在模板页面中使用

{% for article in articles %}
    <li>{{ article.title }}</li>
{% empty %}
    <li>暂无数据!</li>
{% endfor %}
发布了8 篇原创文章 · 获赞 1 · 访问量 2136

猜你喜欢

转载自blog.csdn.net/weixin_44024324/article/details/104211945
今日推荐