-
Пишу проект на 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/
Заранее благодарен. -
прогноз погоды - gismeteo.ru
-
То, что прогноз погоды на гисметео я и так знаю, я просил указать не откуда брать, а примеры кода реализации, как правильно организовать. Погода обновляется каждые 4 часа, курс цб - 1 раз в сутки. Это я так понимаю по крону можно сделать, написать отдельную подпрограмму, которая по крону запускалась и обновляла поля в нужной таблице. Но по концепции джанго - это не правильно. Может у кого есть реализация на джанго?
-
Павел, почему по концепции джанго это неправильно?
PS. Да и реализовывать это надо на питоне, а не на джанго (если только не сделать командой для manage.py) -
чегож в этом не правильно то? a б навеное вообще ajax-ом сделал., чтобы и актуально всегда было, и базу не захломлять идиотской фигней :)
все что тебе понядобится, это django, jquery (че нить на подобе) и xml. -
А что тут неправильного в обновлении по крону? Конечно, можно сделать выборку погоды на каждый запрос, добавив кеширование.
Поиск по django+weather тоже дает примеры реализации. Если они не устроят, на их основе можешь ведь сделать свое. -
В проекте используется кеширование, чтобы не дергать базу постоянно. время жизни кеша около 1 часа, как раз подойдет, если данные обновлять 1-2 раза в сутки. то получится очень даже ничего...
ivanff.myopenid.com Реализация на jquery, во первых увеличит скорость загрузки страницы, плюс на каждый запрос страницы, будет дергать сайт информатор. А в правилах пользования информаторов написано, что делайте хранение промежуточной информации. Т.е. при активном долбежке сайта, заблокируют мой хост. Да и проблема с браузерами на которых JavaScript отключен, или всякие NoScript стоят... тогда отображение не будет... нужно кроссбраузерное решение, чтобы было доступно для всех.
пока склоняюсь к реализации через крон. -
Реализация на jquery, во первых увеличит скорость загрузки страницы
В данном случае - не намного.
плюс на каждый запрос страницы, будет дергать сайт информатор. А в правилах пользования информаторов написано, что делайте хранение промежуточной информации. Т.е. при активном долбежке сайта, заблокируют мой хост.
Храните актуальные данные в быстром кеше. Если кеш устаревает - дёргайте источник.
В базу данные заносить стоит только если вам зачем-то история важна. В этом случае идеология джанги ничего не имеет против крона. Только последнее данное из базы всё равно стоит в кеш закидывать.
-
Т.е. при активном долбежке сайта, заблокируют мой хост.
При реализации на js запросы-то будут идти от клиентов, а не от сайта. Может у кого-нибудь, к тому же, есть вариант получения погоды картинкой - он будет работать без js.
Да и вообще, хоть на django, хоть на не django, одинаково делать, причем тут django. По крону так по крону (можно даже какой-нибудь верх минимализма на shell и wget сделать, можно management-командой), на клиенте так на клиенте. Особой разницы не вижу, делайте, вообщем. У gismeteo вот информеры есть, вставляешь html-код и радуешься жизни. Тут дел минут на 5, и, как мне кажется, огород городить смысла нет.
-
Михаил Коробов, ну начну с того, что данные должны интегрировать в дизайн сайта, и выводится в виде строки( город и температура воздуха ), это уже накладывает автоматом свои стили вывода этой информации, и соотвественно обработку полученной информации с сайта информатора.
А насчет того, чтобы тупо влепить картинку с гисметео - это не вариант. Есть строгий дизайн. -
Павел, json от информера можно вывести в свой дизайн как угодно. Ну или кроном, вариантов тут море.
-
У нас погода на Django - http://www.irk.fm/weather/. Сделано именно так как Павел изначально описал - 3 крон-скрипта (собственная погодная станция, Гисметео, Yahoo Weather), две джанговских модели. Изначально тоже делали "по-быстрому" на одном кэшировании, но пришлось переписать на хранение всего в базе, иначе были проблемы и со скоростью, и с надежностью. У нас вообще данные по погоде показываются на каждой странице в шапке, так что костыли типа "сделаем парсер на JQuery" даже не рассматривались.







