django中cookie模板引用

django中cookie模板引用,第1张

cookie是用于记录用户登录状态的,给登录成功后进入的首页设置一个cookie,

def login(request):
    if request.method == "GET":
        return render(request, "login.html")
    if request.method == "POST":
        username = request.POST.get("username")
        password = request.POST.get("pwd")
        if auth.authenticate(username=username,
                             password=password):  # anthenticate在数据表中user寻找与用户输入姓名是否匹配的使用前提是储存密码必须使用非明文,即创建方式需要使用create_user
            user_obj = auth.authenticate(username=username, password=password)
            print(user_obj.username)  # 在cmd页面显示打印内容
           # return render(request, 'main.html')
            rep = redirect('/main/') #或者可以用小名,ridirect(reverse('main'))
            rep.set_cookie("is_login", True) ## 设置cookie, "is_login", True  
            return rep
        else:
            return render(request, 'wrong.html')



rep= redirect('/首页url/')
rep.set_cookie("cookie名", 值)(值可以给一个Ture)
return rep

然后在每一个视图函数上加上一下代码:(后面发现好像不设置如下代码也可以,即在只用把cookie写给注册和注销)
status = request.COOKIES.get('cookie名称')

def main(request):
    '''
    print(request.COOKIES.get('is_login')) # 获得cookie is_login
    status = request.COOKIES.get('is_login') # 收到浏览器的再次请求,判断浏览器携带的cookie是不是登录成功的时候响应的 cookie
    if not status: ## 若 cookie is_login 为空
        return redirect('/login/')
    return render(request, "main.html")
    '''
    if request.method =='GET':
        return render(request, 'main.html')

注销函数就是将cookie删除,与设置cookie的方法相似

def logout(request):
    rep = redirect('/login/')
    rep.delete_cookie("is_login") ## 删除 cookie is_login 
    return rep 


rep = redirect('/login/')
rep.delete_cookie('cookie名称')
return rep
 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/578837.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-11
下一篇 2022-04-11

发表评论

登录后才能评论

评论列表(0条)

保存