代码之家  ›  专栏  ›  技术社区  ›  Praneeth Karnena

如何在以MongoDB为数据库的Python中创建、管理和验证登录和配置文件页面的会话?

  •  0
  • Praneeth Karnena  · 技术社区  · 6 年前

    这个问题可能涉及面很广,但我最近开始使用Python和MongoDB,并开始使用Django构建应用程序。所以,请引导我。

    我正在使用 Django ,但由于没有与MongoDB正式集成;我直接使用PyMongo进行数据库操作。因此,我的 models.py 文件完全为空。我正在使用 Django公司 用于HTTP页面路由和不需要访问数据库的类似功能。

    我的应用程序具有 /login ,和 /profile 页用户登录到 /登录名 第页,如果凭据有效,我希望将用户重定向到 /简介 页面并显示其详细信息,如姓名、电子邮件等。我希望存储用户的会话,直到清除浏览器中的cookie或设置会话的到期日期。

    如果用户尝试访问 页面,我想验证会话并将用户重定向到 如果需要,请翻页,否则显示详细信息。

    我不知道HTTP会话和cookie是如何工作的。我读过网络上的信息,但我还不清楚。我还浏览了下面的一些堆栈溢出链接,但它们完全不符合我的需要。

    1. Login to website using python
    2. How do I start a session in a Python web application?
    3. simple implementation of sessions in python?

    这是我的代码:

    /登录名 :

    def login(request):
        if request.method == 'POST':
            email = request.POST['email']
            password = request.POST['password']
            client = MongoClient('mongodb://djangouser:djangopass@1.1.1.1:27017/djangodb')
            db = client.djangodb
            newCollection = db.regdata
            loginCheck = newCollection.find_one({"email": email, "password": password})
            client.close()
            if loginCheck != None:
    
                return HttpResponseRedirect('/profile/')
            else:
                return http.HttpResponse("Invalid credentials!")
        else:     
            return render(request, 'login.html')
    

    /个人资料:

    def profile(request):
        return http.HttpResponse("Ok!")
    

    现在,我应该写什么代码 /登录名 & /简介 阻止验证Cookie、管理会话以及所有内容?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Community Patrick Maupin    4 年前

    那时,我是个菜鸟。我不知道如何实现一个登录/注册系统,因为它可以在web上运行。

    答复:

    1. 使用 Django Authentication 在Django中管理身份验证。
    2. 使用 Django Sessions 管理登录用户。