Как создать, управлять и проверять сеансы для страниц входа и профилей в Python, используя MongoDB в качестве базы данных? - PullRequest
0 голосов
/ 05 мая 2018

Этот вопрос может быть широким, но я недавно начал использовать Python и MongoDB и начал создавать приложение с использованием Django. Так что, пожалуйста, ведите меня.

Я использую Django, но поскольку официальной интеграции с MongoDB нет; Я напрямую использую PyMongo для операций с базами данных. Таким образом, мой models.py файл полностью пуст. Я использую Django для маршрутизации страниц HTTP и аналогичных функций, которым не нужен доступ к базе данных.

У моего приложения есть страница /login и страница /profile. Пользователь входит в систему на странице /login, если учетные данные действительны, я хочу, чтобы пользователь был перенаправлен на страницу /profile, и отображал его данные, такие как имя, адрес электронной почты и т. Д. Я хочу, чтобы сеанс пользователя сохранялся до файлов cookie. в браузере очищаются или устанавливаются истечения для сеанса.

Если пользователь пытается получить доступ к странице /profile напрямую, я хочу подтвердить сеанс и перенаправить пользователя на страницу /login, если необходимо, или отобразить подробности в противном случае.

Я не знаю, как работают HTTP-сессии и файлы cookie. Я прочитал в Интернете информацию, но я не понял ясно. Я также просмотрел некоторые ссылки на переполнение стека ниже, но они точно не соответствуют моим потребностям.

  1. Вход на сайт с использованием Python
  2. Как начать сеанс в веб-приложении Python?
  3. простая реализация сессий в 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!")

Теперь, какой код я должен написать в блоках /login & /profile для проверки файлов cookie, управления сеансами и всего остального?

1 Ответ

0 голосов
/ 01 февраля 2019

Тогда я был новичком. Я не знаю, как реализовать систему входа / регистрации, так как она работает в Интернете.

Ответ:

  1. Используйте Аутентификация Django для управления аутентификацией в Django.
  2. Используйте Django Sessions для управления вошедшими в систему пользователями.
...