Вы можете использовать Django Sessions или попытаться самостоятельно что-то взломать, используя метаданные из каждого запроса.
Сеансы Django
Django обеспечивает полную поддержку анонимных сессий.Инфраструктура сеансов позволяет хранить и извлекать произвольные данные для каждого посетителя сайта.Он хранит данные на стороне сервера и объявляет об отправке и получении файлов cookie.Куки содержат идентификатор сеанса, а не сами данные (если вы не используете бэкэнд на основе куки).
Запрос данных META
В каждом запросе в Django он содержит нечто, называемоеMETA
, который содержит метаданные о запросе.В зависимости от того, как вы используете представления Django (представления на основе функций или представления на основе классов), вы получите META
немного по-другому.
Объект запроса в Django - это хранилище значений ключей или, по сути, словарь.Так что в функциональном представлении вы бы использовали.Если вы хотите отслеживать IP-адреса, вы можете использовать REMOTE_ADDR
внутри META
.Однако это не является надежной защитой, поскольку пользователи могут использовать VPN для просмотра с другим IP-адресом.
Представление на основе функций
def my_view(request):
ip_address = request.META['REMOTE_ADDR']
# do your stuff
Представление на основе классов
class MyClass(TemplateView):
def get_context_data(self):
ip_address = self.request.META['REMOTE_ADDR']
# do your stuff
context['ip_address'] = ip_address
Оттам вы можете предоставить более подробную информацию о том, что вы пытаетесь сделать.Но вы должны иметь возможность использовать некоторую комбинацию данных в объекте запроса META
, чтобы отслеживать своих пользователей и предоставлять им лучший опыт.