django基础——上下文处理器
时间:2019-10-22
本文章向大家介绍django基础——上下文处理器,主要包括django基础——上下文处理器使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
当我们在views.py中写逻辑时,需要返回数据,但有时有些数据是每个页面都需要用的,如果每个方法中返回同样数据就会很冗余。这是就需要“上下文处理器“来统一返回数据。
在上下文处理器中返回的每个变量,在每个页面都可以使用。
如,博客中的导航、博客标题等信息,在每个页面可能都会用到,我们就可以写在上下文处理器中,代码如下:
首先在工程目录下建一个py文件,如context_process.py(与settings.py同级):
from user import models #这个是数据库操作的模块,这里可以暂时忽略,想要了解可以去看数据库操作的博客
def nav_title_process(request):
# 上下文处理器 :这个函数里返回的每个变量,在每个页面都可以使用
#需要在setting中的TEMPLATES中配置这个方法的路径
# navs = ['我的相册', '我的日记', 'python', 'linux', '接口测试']
navs=models.Nav.objects.filter(is_delete=1) #这里是从数据库读出来的数据。query_Set 的对象,类似list
title = 'HM的个人主页'
content={'daohang':navs,'title':title}
return content
nav_title_process这个方法就是“上下文处理器”,返回的content的数据可以被任何一个html文件来使用。
上下文处理器,需要在settings中部署一下路径
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')] #控制html 路径在哪里
,
'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',
'dj_Test.context_process.nav_title_process' #context_processors数组中加上,上下文处理器的路径
],
},
},
]
原文地址:https://www.cnblogs.com/hancece/p/11719441.html
- 七牛镜像存储 WordPress 插件 的代码化
- WordPress 会自动压缩JPEG 格式的图像?
- jquery操作DOM 元素(2)
- WordPress 中部署真正的懒加载(Lazy Load)
- 图形化的2008R2 Server Core 配置管理工具
- 各种浏览器的userAgent
- WordPress 根据浏览器 user-agent 按需加载CSS 文件
- memcached的最新状态
- [程序设计语言]-01:引言
- ASP.NET Ajax 库
- ASP.NET进程优化
- 多说 提速:js内页页脚加载、静态文件CDN
- 微信小程序的王者时代
- [程序设计语言]-[核心概念]-02:名字、作用域和约束(Bindings)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- R语言入门之独立性检验
- R语言入门之基本绘图
- 傅里叶级数理论详讲&实例应用
- R语言入门之点图和条形图
- Zabbix MTR 链路质量检测 主备链路监控
- R语言入门之t检验(t test)
- R语言入门之饼图
- 加速Spark编译
- 自定义方便kubectl中pods的管理
- R语言入门之切尾均值(trimmed mean)与绝对中位差(median absolute deviation,mad)
- 盘一盘 Python 特别篇 20 - SciPy 稀疏矩阵
- Spark 3.0.0-SNAPSHOT Access Kerberized HDFS
- Spark Nightly Builds
- R语言入门之基本统计量
- K8S 生态周报| Istio 已修复导致 Pod 崩溃的 bug