• django-上下文渲染器,将后端内容提供给模板使用,自定义渲染器


    使用场景:当同一个类容需要出现在多个模板中, 上下文管理器就是将这个内容以字典的形式返回给所有模板模板通过 {{ key }}取值。

    结构:上下文管理器 文件名一般为context_processors.py xxx      xxx(request) 为一个自定义函数,必要参数request

    配置:它需要被配置在 settings里 

    提示:

    • 在django的上下文渲染器中,尽量不要写太重量级的代码,因为上下文渲染器的中代码,每一次请求都会执行一次,如果这个渲染器过重,会非常影响性能
    TEMPLATES = [
      
            'OPTIONS': {
                # 模版中间件
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',  # 返回一个user对象,前端用来判断用户是否登陆. 前端通过 {% if user.is_authenticated %}, 没登录返回false, 这是通过django自带的管理器实现的
                    'django.contrib.messages.context_processors.messages',
                    'work_register.context_processors.my_ip' # 自定义的上下文管理器
                ],
            },
    ]

     自定义的管理器

    def my_ip(request):
        if request.META.has_key("HTTP_X_FORWARDED_FOR"):
            ip = request.META["HTTP_X_FORWARDED_FOR"]
        else:
            ip = request.META["REMOTE_ADDR"]
        return {"ip1": ip}
  • 相关阅读:
    TX2 刷机教程
    ROS2 树莓派SBC镜像安装
    OP3 默认ID图
    OP3 镜像恢复
    ROS2 BringUp
    学习笔记3:Linux面试题
    学习笔记2:Linux简单指令
    学习笔记1:Git简单指令
    编程小白入门分享五:Vue的自定义组件
    编程小白入门分享四:Vue的安装及使用快速入门
  • 原文地址:https://www.cnblogs.com/tangpg/p/9072398.html
Copyright © 2020-2023  润新知