django基础——上下文处理器
发布时间:2020-12-20 10:14:07 所属栏目:Python 来源:网络整理
导读:当我们在views.py中写逻辑时,需要返回数据,但有时有些数据是每个页面都需要用的,如果每个方法中返回同样数据就会很冗余。这是就需要“上下文处理器“来统一返回数据。 在上下文处理器中返回的每个变量,在每个页面都可以使用。 如,博客中的导航、博客标
当我们在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文件来使用。 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数组中加上,上下文处理器的路径
],},]
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- python – 使用计数复制数据框中的每一行
- tornado接收ajax的post请求报错WARNING:tornado.access:405
- 将True和False答案的数组更改为十六进制值Python
- python – 在dict中处理keyerror的最佳方法
- 如何使用python 2.7移动Windows桌面图标?
- 【Django】Web框架本质 -- 2019-08-17 05:43:11
- Python控制鼠标键盘!女神电脑操作的一切东西都逃不过我的法
- 如何从python中的txt文件中逐行提取文本
- python转义字符
- python – %matplotlib内联:’NoneType’对象没有属性’i