如何为在heroku上运行的Django Web应用程序创建唯一的用户“会话”?

时间:2019-06-11 01:47:44

标签: python django heroku

我使用Django创建了一个Web应用程序,该应用程序将信息存储在python数组中,供用户通过前端访问。现在的问题是,由于我是通过heroku部署的,因此您不能在多台设备上使用该网站,否则从一台设备中选择的选项会影响所有设备的网站数据。

我将如何做到使用户体验与众不同/无关?如何更改views.py(或其他组件),以便Web应用程序为每个用户提供一个“会话”?

这是针对在heroku上运行的Django Web应用程序。该应用程序适用于我的学校,类似于皇家战斗型站点。用户可以选择网站上显示的人员,从而将其从存储在内存中的python词典中删除,然后将其放入另一个词典中以备后用。问题是,如果有多个人同时使用该站点,则他们将访问同一词典。我不知道如何解决这个问题。

“ processor.py”

names, accepted = list(), list()
# names contains many names of people, accepted is empty

def accept_person(person):
    if person in names:
        accepted.append(person)
        names.remove(person)

    else:
        a = difflib.get_close_matches(person, names)
        if len(a) > 1:
            accepted.append(a[0])
            names.remove(a[0])
        else:
            pass

“ views.py”

def view_home(request):
    if request.method == 'POST':
        if(request.POST.get("yes")):
            processor.accept_person(request.POST.get("yes", False))

在一个设备上接受一个人即表示该人接受访问该网站的每个人。我希望每个用户可以有一个“会话”,以便一个人更改此python词典不会影响每个人的体验。

1 个答案:

答案 0 :(得分:0)

您在这里寻找的是一种对用户进行身份验证的方法,Django非常出色,可以为您处理所有这些操作。

但是,如果您真的想以最小的努力获得完整的解决方案,我将介绍一个名为django-allauth的软件包。

官方文档(https://django-allauth.readthedocs.io/en/latest/installation.html)可能有点令人生畏,所以这是我第一次将身份验证集成到Django中时遵循的一个很好的教程。

https://wsvincent.com/django-allauth-tutorial/