1. Павел Иващенко

    25.07.2010

    0 ↑
    1 ↓
    Пишу проект на django, стал вопрос: есть ли уже реализованная библиотека по сабжу. Часто в своих проектах требуется предоставлять информацию о прогнозе погоды определенного города, курсе валют. Подкиньте ссылки на сниппеты или поделитесь кодом..

    p.s. гуглил, нашел несколько статей, но уже устаревшие, и не работают.

    p.s. это вот они http://techwork.ru/2008/08/28/xml-services-part-2/ и http://techwork.ru/2008/08/09/xml-services-for-ip-phones/

    Заранее благодарен.
  2. ildus

    25.07.2010

    0 ↑
    1 ↓

    прогноз погоды - gismeteo.ru

  3. Павел Иващенко

    26.07.2010

    0 ↑
    2 ↓
    То, что прогноз погоды на гисметео я и так знаю, я просил указать не откуда брать, а примеры кода реализации, как правильно организовать. Погода обновляется каждые 4 часа, курс цб - 1 раз в сутки. Это я так понимаю по крону можно сделать, написать отдельную подпрограмму, которая по крону запускалась и обновляла поля в нужной таблице. Но по концепции джанго - это не правильно. Может у кого есть реализация на джанго?
  4. igorekk

    26.07.2010

    0 ↑
    0 ↓
    Павел, почему по концепции джанго это неправильно?
    PS. Да и реализовывать это надо на питоне, а не на джанго (если только не сделать командой для manage.py)
  5. ivanff.myopenid.com

    26.07.2010

    1 ↑
    1 ↓
    чегож в этом не правильно то? a б навеное вообще ajax-ом сделал., чтобы и актуально всегда было, и базу не захломлять идиотской фигней :)
    все что тебе понядобится, это django, jquery (че нить на подобе) и xml.
  6. Cyrill

    26.07.2010

    0 ↑
    0 ↓
    А что тут неправильного в обновлении по крону? Конечно, можно сделать выборку погоды на каждый запрос, добавив кеширование.

    Поиск по django+weather тоже дает примеры реализации. Если они не устроят, на их основе можешь ведь сделать свое.
  7. Павел Иващенко

    26.07.2010

    0 ↑
    0 ↓
    В проекте используется кеширование, чтобы не дергать базу постоянно. время жизни кеша около 1 часа, как раз подойдет, если данные обновлять 1-2 раза в сутки. то получится очень даже ничего...
    ivanff.myopenid.com Реализация на jquery, во первых увеличит скорость загрузки страницы, плюс на каждый запрос страницы, будет дергать сайт информатор. А в правилах пользования информаторов написано, что делайте хранение промежуточной информации. Т.е. при активном долбежке сайта, заблокируют мой хост. Да и проблема с браузерами на которых JavaScript отключен, или всякие NoScript стоят... тогда отображение не будет... нужно кроссбраузерное решение, чтобы было доступно для всех.

    пока склоняюсь к реализации через крон.
  8. astur.net.ru

    26.07.2010

    0 ↑
    0 ↓

    Реализация на jquery, во первых увеличит скорость загрузки страницы

    В данном случае - не намного.

    плюс на каждый запрос страницы, будет дергать сайт информатор. А в правилах пользования информаторов написано, что делайте хранение промежуточной информации. Т.е. при активном долбежке сайта, заблокируют мой хост.

    Храните актуальные данные в быстром кеше. Если кеш устаревает - дёргайте источник.

    В базу данные заносить стоит только если вам зачем-то история важна. В этом случае идеология джанги ничего не имеет против крона. Только последнее данное из базы всё равно стоит в кеш закидывать.

  9. Т.е. при активном долбежке сайта, заблокируют мой хост.

    При реализации на js запросы-то будут идти от клиентов, а не от сайта. Может у кого-нибудь, к тому же, есть вариант получения погоды картинкой - он будет работать без js.

    Да и вообще, хоть на django, хоть на не django, одинаково делать, причем тут django. По крону так по крону (можно даже какой-нибудь верх минимализма на shell и wget сделать, можно management-командой), на клиенте так на клиенте. Особой разницы не вижу, делайте, вообщем. У gismeteo вот информеры есть, вставляешь html-код и радуешься жизни. Тут дел минут на 5, и, как мне кажется, огород городить смысла нет.

  10. Павел Иващенко

    28.07.2010

    0 ↑
    1 ↓
    Михаил Коробов, ну начну с того, что данные должны интегрировать в дизайн сайта, и выводится в виде строки( город и температура воздуха ), это уже накладывает автоматом свои стили вывода этой информации, и соотвественно обработку полученной информации с сайта информатора.

    А насчет того, чтобы тупо влепить картинку с гисметео - это не вариант. Есть строгий дизайн.
  11. Arcady Chumachenko

    28.07.2010

    1 ↑
    0 ↓

    Павел, json от информера можно вывести в свой дизайн как угодно. Ну или кроном, вариантов тут море.

  12. softshape2.ya.ru

    03.08.2010

    0 ↑
    0 ↓
    У нас погода на Django - http://www.irk.fm/weather/. Сделано именно так как Павел изначально описал - 3 крон-скрипта (собственная погодная станция, Гисметео, Yahoo Weather), две джанговских модели. Изначально тоже делали "по-быстрому" на одном кэшировании, но пришлось переписать на хранение всего в базе, иначе были проблемы и со скоростью, и с надежностью. У нас вообще данные по погоде показываются на каждой странице в шапке, так что костыли типа "сделаем парсер на JQuery" даже не рассматривались.