python学习:Django中的cookie和session(5)
Django的Cookie和Session
使用cookie和session保存个人信息,cookie和session是一些键值对保存信息。通过Cookie登陆控制验证。使用request.COOKIES保存提交的cookie信息。
使用response设置cookie,response.set_cookie()设置cookie信息键值对。
设置cookie有效时间set_cookie(max_age参数,expires参数)。max_age设置秒数,expires可以设置一个时间字符串,datetime.datetime。
Cookie安全性较低,所有信息在客户端,容易被获取到,Session可以将键值对信息存到数据库中,可以是服务器端任何位置,返回给客户端一个字符串名字,客户端通过字符串名字进行认证。
使用request.session 可以获取到session对象。request.session[“键“],获取具体键的值。
使用request.session[“键”]=值,设置session。
使用request.session.get(“键”),获取键值。
使用 del request.session(“键“),删除键值。
示例:
def login(request):
# 获取cookie
print("COOKIES:", request.COOKIES)
#获取session,没有提示session,修改settings.py MIDDLEWARE 修改为 MIDDLEWARE_CLASSES
print("session:",request.session)
if request.method == 'POST':
name = request.POST.get("name");
pwd = request.POST.get("pwd");
print(name,pwd);
if name =="tang" and pwd == "123":
# #使用cookie方式
# ret = redirect("/url_dispatch/login_success/")
# print(type(ret))
# #设置cookie
# ret.set_cookie("flag","1")
# #设置cookie有效时间10s。max_age
# ret.set_cookie(max_age=10)
# return ret
#使用session方式
#设置session,session字典
request.session["login"]=True;
request.session["user"] = name;
return redirect("/url_dispatch/login_success/")
return render(request,"login.html")
def login_suc(request):
# if request.COOKIES.get("flag") == "1":
# return render(request,"login_success.html")
# else:
# return redirect("/login/")
if request.session.get("login"):
name = request.session.get("user");
return render(request, "login_success.html",locals())
else:
return redirect("/url_dispatch/login/")
本文来自博客园,作者:渔歌晚唱,转载请注明原文链接:https://www.cnblogs.com/tangToms/articles/14158975.html

浙公网安备 33010602011771号