目录
介绍
session是基于cookie实现的,为什么有session,cookie是不安全的,session是将数据存到服务器,生成一把钥匙作为cookie返回给客户端,session Django框架已经实现完成使用起来非常方便,他可以将一些数据写到session中,不光可以做登录验证,详情见代码
写session
def login(request):
if request.method == "GET":
return render(request,"app02/login.html")
else:
user = request.POST.get("user")
pwd = request.POST.get("pwd")
try:
user_pwd = User.objects.get(user=user,pwd=pwd)
# 写session
# 在这做三件事情
# 1 创建随机字符串
# 2 将随机字符串 作为session-key 将字符串作为session-data插入到Django-session表中
# 3 将session-ID和随机字符串组成键值对作为cookie返回给客户端
request.session["user_id"] = user_pwd.pk # 这一行代码就完成啦 写session操作
return redirect("/app02/index/")
except Exception as e:
return redirect("/app02/login/")
读session
def index(request):
# 读session
# 1 首先取session的钥匙
# 2 取Django-session表中查符合的数据
# 3 将取出的session-data数据
user_id = request.session.get("user_id") # 可以直接读session-data内容
if user_id:
username = User.objects.get(pk=user_id).user
return render(request,"app02/index.html",{'user':username})
else:
return redirect("/app02/login/")
记录上次访问的时间
def last_time(request):
last_time = request.session.get("time","第一次访问")
now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
request.session["time"] = now
return render(request,"session/shop.html",{"time":last_time})
删除session
def logout(request):
# 删除改钥匙的整条记录
# request.session.flush()
# 删除某一个value
del request.session["user_id"]
return redirect("/app02/login/")
标签:return,get,request,session,user,app02
From: https://www.cnblogs.com/py-zhq/p/17099883.html