Sun 10 Feb 2008
Небольшая заметка о том, как можно обращаться к данным напрямую, в обход Web сервера.
Пример использования: получение и/или актуализация данных по крону.
Вот так можно использовать небольшой скрипт, вызываемый из крона, например для периодической записи каких-нибудь данных в файл:
Можно использовать и так:
Мне кажется вариант выше выглядит в любом случае симатичнее :)
Пример использования: получение и/или актуализация данных по крону.
Вот так можно использовать небольшой скрипт, вызываемый из крона, например для периодической записи каких-нибудь данных в файл:
*/1 * * * * www /usr/bin/python /srv/project/update.py 999 >>/tmp/datesВот сам скрипт update.py, он должен находиться в папке проекта вместе с settings.py:
#!/usr/bin/env python import sys,settings from django.core.management import setup_environ setup_environ(settings) from YourApp.models import MyModel try: print MyModel.objects.get(id=sys.argv[1]) except Exception: print "error"Показан только принцип получения данных без обращения к Web серверу, надо всего лишь загрузить и активировать настройки проекта Django.
Можно использовать и так:
*/1 * * * * www /usr/bin/wget -O /dev/nullДля этого надо еще в views.py добавить обработчик. Отрицательный момент - лишний путь через веб-сервер.
http://www.server.com/update/?999 >>/tmp/dates
Мне кажется вариант выше выглядит в любом случае симатичнее :)
English
Deutsch
Русский
(3 votes, average: 4 out of 5)
February 11th, 2008 at 6:13 p.m.
"Вот сам скрипт update.py, он должен находиться в папке проекта вместе с settings.py"
Необязательно. Достаточно указать путь к settings, чтобы можно было его подключить.
February 11th, 2008 at 7:37 p.m.
А еще можно свою команду для manage.py написать
February 12th, 2008 at 3:29 p.m.
Спасибо за предложения.
Насчет папки согласен, можно и path подключить, я всего-лишь показал один из возможных вариантов реализации.