您的位置:首页 > 编程语言 > Go语言

Django session 序列化对象

2017-04-16 00:00 323 查看
摘要: session序列化

在做登录页面时,需要把登录后的用户信息存放到session当中,而前台模版也需要获取session当中的用户名称,此时将session序列化成对象,更方便取值 ,(对比外键跨表查询

方法:

在 views.py 或其他登录相关模块中设置 session
session request.session['user']=user # user 为需要保存的用户对象

在 settings.py 中配置序列化相关
SESSION_SERIALIZER = 'django.contrib.sessions.serializers.PickleSerializer'

html 通过模版获取 登录的用户名
{{ request.session.uesr.name }}

相关代码:

login.py

rom django.shortcuts import render,redirect
from blog.models import UserInfo
import hashlib              #加密

def login(request):
if request.method=='POST':
status={}
name=request.POST.get('username')
password=request.POST.get('password')
md5 = hashlib.md5()
md5.update(password.encode('UTF-8'))   #将输入的密码进行MD5加密

#将用户名和密码和数据库进行比对,如果匹配,则存放到session 中
try:
user = UserInfo.objects.get(name=name, password=md5.hexdigest())
request.session['user'] = user
return redirect('/index/')
except:
status['error']='用户名或密码错误'
return render(request,'login.html', status)
return render(request,'login.html')

setting.py 中将session 序列化成对象

#添加 session 序列化相关内容
SESSION_SERIALIZER = 'django.contrib.sessions.serializers.PickleSerializer'

前台html 就可以通过模版 {{ request.session.user.name }} 来获取用户名

您好,{{request.session.user.name}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Django session