2013-07-15 4 views
0

В моих попытках изучить django, я пытался сделать клон dayscore.net. Это означает, что я хочу сделать сайт с помощью django, это не относится к git clone или hg clone. Если вы посмотрите, каждый раз, когда новый пользователь приходит к daycore, вы получаете уникальный сеанс со специальным хеш-кодом. Как бы вы достигли чего-то подобного, используя django?Создание анонимной сессии django

+0

Занятия Django делают то же самое. Проверьте [документацию] (https://docs.djangoproject.com/en/dev/topics/http/sessions/). – Sudipta

ответ

2

1) Как указано в комментарии к вашему вопросу, Django применяет идентификатор сеанса к любому запросу, если вы включили промежуточное ПО Session.

2) Если вы все еще хотите генерировать идентификатор сеанса самостоятельно, вы можете создать промежуточное программное обеспечение, где на process_request вы создадите значение хэша и добавьте его в сеансы.

middleware.py

import uuid 

class AnonHashMiddleware(object): 

    def process_request(self, request): 
     """ 
     If user is not authenticated (anonymous) we set session hashcode 
     uuid4 hex 
     """ 
     if not request.user.is_authenticated() and \ 
       'hashcode' not in request.session: 
      request.session['hashcode'] = uuid.uuid4().hex 

Pros

  • Независимо от того, что страница пользователя сайта приходит, если он является анонимным без хэш-код, он будет получать хэш-код, сгенерированный для него.

Против

  • Middleware будет применяться для каждого запроса, пришедшего к серверу так же, как и все другие промежуточное программное.
+0

Нет, я хотел бы его воссоздать, используя только django. –

+0

уточните в своем вопросе, что вы хотите сделать такое поведение, а не просто клонировать (например, 'wget -r' сайт) – shalakhin

+0

Я думал, что это было ясно, потому что вы говорите о вещах вроде« facebook clone »и« hackernews clone », , поэтому я думал, что это не вызовет путаницы. Я имею в виду, когда вы в последний раз хотели клонировать фактический сайт? –

Смежные вопросы