如何在Django中使用会话创建登录系统? [英] How do I create a Login System in Django Using Sessions?

查看:153
本文介绍了如何在Django中使用会话创建登录系统?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试创建一个通过自定义登录名进行身份验证的网站.但是我有一个针对用户的自定义模型.如何从匿名用户验证我的网站.是否可以使用基于会话的登录系统.实际上,这是我的第一个django项目.请指导我.谢谢.

I am trying to create a website which is authenticated by a custom login. But I have a custom Model for users. How do I authenticate my Website from anonymous Users. Is it possible to create login systems using based on sessions. Actually this is my first django project. Please Guide me. Thank you.

推荐答案

在登录时,检查用户名和密码后,创建一个会话,在其中设置其用户对象或对象ID.在这种情况下,我保留了用户ID.

While login, after checking username and password create a session in which set their user object or it's object id in it. In this case i kept user id.

def login(request):
    if request.method == "GET":
        if (Users.objects.filter(username = request.GET.get("uname"), password = request.GET.get("upswd"))).exists():
            user = Users.objects.get(username = request.GET.get("uname"), password = request.GET.get("upswd"))
            request.session["user"] = user.id
            # request.session.set_expiry(10)
            # it shows home page
            return render(request,"home.html")
    #it shows again login page
    return render(request,"Login.html")

仅在登录页面上设置会话,其余的将检查页面是否包含该会话.例如,在登录首页后,您应检查请求是否包含用户会话.

only in login page you will set session, In remaining you will check whether page contains that session or not.For example, in after login in home page you should check whether request contains user session or not.

if request.session.has_key("user"):
    userid = request.session["user"]
    #displaying all items in database
    context={"items":Products.objects.all()}
    return render(request,"home.html",context)

这篇关于如何在Django中使用会话创建登录系统?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆