实战django(二)--登录实现记住我

实战django(二)--登录实现记住我,第1张

概述上节初步实现了登录和注册模块,这节我们进一步实现“记住我”功能。 大体功能分为以下模块: 1.在登录时如果勾选记住我,那么就将用户username存进cookie中,跳转到index页面; 2.此时,

上节初步实现了登录和注册模块,这节我们进一步实现“记住我”功能。

大体功能分为以下模块:

1.在登录时如果勾选记住我,那么就将用户username存进cookie中,跳转到index页面;

2.此时,如果不进行登出,如果直接返回登录页面,那么就会判断cookie中是否存在username,如果存在,就直接跳转到Index界面,也就是不用再一次登录;

3.如果进行登出,则删除cookie中的username,并返回登录界面;

4.如果登录时不勾选记住我,那么跳转到index界面后,在访问登录界面不会继续跳转到Index界面;

5.若直接访问Index界面,会判断cookie中是否存在username,如果不存在,则会提示对不起,请先登录,三秒之后跳转到登录界面。

urls.py

from django.urls import pathfrom .  vIEwsapp_name='login'urlpatterns=[    path('',vIEws.login,name=),path(register/',vIEws.register,1)">registerregister/savereg/saveregtologin/tologinlogout/logoutindex/index

from django.shortcuts  render,redirectfrom .models  Users datetime# Create your vIEws here.def login(request):    if request.get_signed_cookie(usernameSSS None:        username = request.get_signed_cookie(None)        return render(request,login/index.HTML: username})    login/login.HTML) register(request):    login/register.HTML) save_register(request):    if request.method == POST:        phone=request.POST.get(phone)        username=request.POST.get()        password=request.POST.get(password)        repassword=request.POST.get(repassword)        birthday=request.POST.get(birthday)        errormsg=''        if phone =='':            errormsg=手机号不能为空'        elif password ==密码不能为空else:            if password!=repassword:                errormsg=确认密码与密码不一致if errormsg == :            Users.objects.create(phone=phone,username=username,password=password,birthday=birthday,regday=datetime.datetime.Now().strftime(%Y-%m-%d))            login/pagejump.HTML)        errormsg:errormsg}) to_login(request):    )        remember=request.POST.get(rememberif phone == ': 用户名不能为空})        try:            user_obj = Users.objects.get(phone=phone)        except Users.DoesNotExist:            ':账号不存在,请重新输入})        pwd=user_obj.password        password = request.POST.get(if password != :            repwd=password            if pwd == repwd:                username=user_obj.username                if remember is not None:                    response = render(request,1)">:username})                    response.set_signed_cookie("",username,max_age=60 * 60 * 12)                    return response                :                    : username})                 return render(request,'login/index.HTML',{'username':username})            :                密码错误}) check_login(func):    def helper(request,*args,**kwargs):         None:            return func(request,1)">kwargs)        login/checklogin.HTML)     helper logout(request):    response = redirect(/login/")    response.delete_cookie( response@check_login index(request):    ')
VIEw Code

index.HTML

<!DOCTYPE HTML><HTML lang=en"><head>    <Meta charset=UTF-8">    <Meta name=vIEwport          content=wIDth=device-wIDth,user-scalable=no,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0">    <Meta http-equiv=X-UA-Compatible" content=IE=edge">    <Title>document</Title></head><body>    <h3><p>hello {{username}}</p></h3><span><p><a href={% url 'login:logout'%}">登出</a></p></span></body></HTML>
VIEw Code

login.HTML

<!DOCTYPE HTML><HTML lang=">    <Title>盒老师</Title>    <Meta name=keywords盒老师contentIE=edge,Chrome=1">    <link type=text/CSS" rel=stylesheet" href=/static/login/CSS/login.CSS">    <script type=text/JavaScript" src=/static/login/Js/jquery.min.Js"></script></head><body class=login_bj" ><div zhuce_body" style=position:absolute;left:130px;top:300px;">    <div zhuce_kong login_kuang" >        <div zc">            <div bj_baiheight:330px;">            <h3>登录</h3>                   <form action={% url 'login:tologin'%}" method=post">                <p style=color: red;margin-top: 0px;">{{errormsg}}</p>                <input name=" type=text" kuang_txt" placeholder=手机号">                <input name=密码">                <div>                       <input name=checkBox" value=" ><span>记住我</span><a href=#float:rigth;">忘记密码</a>                </div>                <div>                       <p>没有账号?<a href={% url 'login:register'%}">立即注册</a></p>                </div>                <input style=margin-top:2px;" name=登录submitbtn_zhuce">                </form>            </div>        </div>    </div></div>    </body></HTML>
VIEw Code

checklogin.HTML

<body><div align=centerborder: 1px solID blueviolet;        position:absolute;left:500px;top: 200px;wIDth: 430px;height: 50px;>    <p style=text-align: center;Font-size: 20px;">对不起!请先登录!还有<span ID=sp">3</span>秒跳转到登录界面...</p></div><script>    //onload事件会在页面加载完后立即发生    onload=function () {        //etInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。        setInterval(go,1000)    };    var x=2;    function go() {        if (x>=0){            document.getElementByID(").innerText=x;        } {            location.href={% url 'login:login'%};        }        x--;    }</script></body>
VIEw Code

到这里,登录注册也基本告一段落了。同时我的django之旅也暂时告一段落了,花了接近一个月的时间,也算是有所收获,找时间会将所有代码上传至github。接下来准备去看自然语言处理了,极大可能是自己以后工作的内容。

总结

以上是内存溢出为你收集整理的实战django(二)--登录实现记住我全部内容,希望文章能够帮你解决实战django(二)--登录实现记住我所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存