zoukankan      html  css  js  c++  java
  • django通过添加session来保存公共变量

    有时候我们需要所有页面都使用同一个变量,比如用户登录信息。那不可能render每一个页面时都去传递一个变量,会非常麻烦
    而用session可以解决这个问题
     
    web的session可以通过request.session返回,返回结果是一个字典

    第一步:通过视图修改session中自定义key的内容

    比如我增加一个username字段
     
    在webManage下新建一个叫做context_processor的文件,然后添加下面的内容
    def username(request):
        return {'username': request.session.get('username', "Guest")}
     
    该方法返回了请求的session中的username值,如果没有赋值Guest
    如果想直接给他赋值,直接用request.session[“username"]=xxx即可

    第二步:修改settings.py文件,增加刚创建的方法

    在TEMPLATES->OPTIONS->context_processors下增加刚刚添加的方法(页面.方法)
     
    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',
                    'webManage.context_processor.username'
                ],
            },
        },
    ]
     

    第三步:调用创建的方法 

    views视图中直接使用username就可以获得定义的username方法的返回值
    在html中使用{{ username }}调用该内容
     
  • 相关阅读:
    POJ 2528 Mayor's posters 线段树+离散化
    Leveldb之version与version_set详细对比
    rocksdb编译测试的正确姿势
    ycsb使用方法
    memalign vs malloc
    四种监听器(自身类,外部类,内部类,匿名类)
    数据库基础
    哈希索引和Btree索引
    哈希表hashtable
    抽象类和接口
  • 原文地址:https://www.cnblogs.com/meitian/p/6557344.html
Copyright © 2011-2022 走看看