2015-09-26 4 views
0

У меня есть страница, которая загружает список тегов для строки поиска. Каждый раз, когда вы нажимаете, он должен перезагружать этот список тегов. Как я могу сделать это глобальной переменной, которая инициализируется при посещении сайта и не перезагружается на каждую страницу?django перезагружает переменные при каждом нажатии на страницу

EDIT: Еще лучше, как это сделать, чтобы список инициализировался и проверялся только один раз в день или неделю для обновлений?

+1

Вы можете использовать сеансы https://docs.djangoproject.com/en/1.8/topics/http/sessions/ – user996142

ответ

1

Я бы использовал кеш низкого уровня api, чтобы сделать это https://docs.djangoproject.com/en/1.8/topics/cache/. После того, как кэш установки она должна быть столь же легко, как делать следующее:

from django.core.cache import cache 

    def view(): 
     search_tags = cache.get('search_tags') 
     if not search_tags: # cache expired 
      search_tags = get_searchtags() # substitute for your code 
      cache.set('search_tags', search_tags, 60 * 60 * 24 * 7) # cache search tags for 7 days 
     return view 

Это будет означать, что один раз в 7 дней список поиска метки построен и последующие доступы очень быстро.

+0

Вы также можете разгрузить здание тегов в другое задание, чтобы оно не обратилось к пользователю, если время это требуется для их создания, что негативно скажется на работе пользователя (даже если оно раз в неделю) –

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