django模板中直接使用session

如何在django的模板中使用session呢?例如,显示已登陆的用户名:{{ request.session.logged_user.username }}

在settings.py 中添加或者启用常量:

TEMPLATE_CONTEXT_PROCESSORS = (
#    'django.core.context_processors.auth',
    'django.core.context_processors.request',
#    'django.core.context_processors.debug',
#    'django.core.context_processors.i18n',
#    'django.core.context_processors.media',
#    'tools.my_template_context_processors.request_filter',
)

Django中,Session是一种存储用户数据的方式,它基于用户的浏览器cookies,可以在用户访问期间持久保持状态。以下是使用Django session的基本步骤: 1. **导入相关模块**: 首先,确保在视图、模板或者其他需要使用session的地方导入`django.contrib.sessions`模块。 ```python from django.contrib.sessions.backends.db import SessionStore # 使用数据库作为会话后端 ``` 2. **创建会话**: 在需要开始新的会话或者获取当前会话时,可以使用`SessionStore`对象。如果还没有会话,会自动创建一个新的。 ```python def my_view(request): session = SessionStore() # ... ``` 3. **设置和获取值**: 可以像字典一样设置和获取键值对。 ```python session['username'] = 'John Doe' user_name = session.get('username') ``` 4. **保存会话**: 设置完值之后,别忘了调用`save()`方法将更改写入数据库。 ```python session.save() ``` 5. **结束会话**: 在不需要会话时,调用`delete()`或在响应中清除会话,这会在服务器关闭时自动完成。 ```python session.delete() # 或者在响应中设置SESSION_EXPIRE_AT_BROWSER_CLOSE=True ``` 6. **启用session中间件**: 在`settings.py`中,确保启用了`SESSION_ENGINE`和`MIDDLEWARE`设置来处理会话。 ```python SESSION_ENGINE = 'django.contrib.sessions.backends.db' MIDDLEWARE = ['django.contrib.sessions.middleware.SessionMiddleware', ...] ``` 7. **在模板使用**: 在模板里,你可以使用`{% csrf_token %}`标签以及`request.session`属性访问session数据。 注意,为了安全起见,Django默认不会允许跨域读取会话数据,除非在设置中特别开启`CSRF_COOKIE_DOMAIN`或`SESSION_COOKIE_DOMAIN`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值