赞
踩
如果想要返回自己的数据, 可以自定义上下文处理器
首先要确保浏览器保存了cookie或者session数据
自定义上下文处理器步骤:
1.根据上下文处理器属于哪个app, 在这app中创建一个py文件专门存储上下文处理器
2.在定义的上下文处理器文件中定义一个函数, 这个函数只有一个request参数, 这个函数处理完成自己的逻辑后, 把需要的数据通过字典的形式返回, 如果不返回任何数据那么必须返回一个空的字典
app下创建一个py文件
定义函数
settings中配置定义好的上下文处理器
前端的代码,需要判断传递过去的字典是否为真
在项目的settings.py中定义了django内置上下文处理器
INTERNAL_IPS = ['127.0.0.1']
‘django.template.context_processors.request’
可以在模板中调用request对象的方法和属性
例如: {{ request.path}} 可以直接调用
‘django.contrib.messages.context_processors.messages’
django内置的用户系统 返回一个字典中包含了用户信息, 用户权限
可以在模板中调用
django.contrib.messages.context_processors.messages
messages上下文处理器可以给前端返回错误的消息
导入messages
from django.contrib import messages
messages的使用
messages.add_message(request, messages.INFO, '错误的信息内容')
或者: messages.info(request, '错误的消息内容')
info是代表的消息级别, 消息有五大级别如: debug等等
返回给前端是一个消息列表, 需要遍历才能提取里面的数据
– 注意点:messages参数,后端并未通过render渲染的方式传递, 因为已经内置了messages上下文处理器, 所以django底层会帮助我们传递
django.template.context_processors.media
使用media上下文处理器可以在模板中读取MEDIA_URL
前提是: 上传文件的settings配置也是配置好了
{{ MEDIA_URL }}代表的是上传文件保存的文件夹的绝对路径, 然后只需填入文件名字就可以显示在模板上,
如果是在模型中, 直接调用{{ 模型类. 字段 }}在后面拼接即可
‘django.template.context_processors.static’
在上下文处理器中定义了static可以在模板中使用STATIC_URL的,就是配置好的static路径
django.template.context_processors.csrf
使用了这个上下文,可以在表单中
生成一个csrf_token的变量,
跟{% csrf_token %}类似, 但是在定义了这个上下位处理器,可以在非表单中使用, {% csrf_token %}只能在表单中使用
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。