首页 > 解决方案 > 如何使用会话在 Django 中创建登录系统?

问题描述

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

标签: djangosessionlogindjango-authentication

解决方案


登录时,检查用户名和密码后创建一个会话,在其中设置他们的用户对象或它的对象ID。在这种情况下,我保留了用户 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")

只有在登录页面你会设置会话,在剩下的时候你会检查页面是否包含该会话。例如,在主页登录后你应该检查请求是否包含用户会话。

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)

推荐阅读