|
||
Ответить |
|
#1
|
|
Вес репутации:
0
Регистрация: 27.02.2009
Адрес: Москва
Сообщений: 7,302
Сказал(а) спасибо: 578
Спасибок 2,623
в 1,832 сообщениях |
Заметки про python и django -
27.10.2010, 13:39
В кратце:
В документации и обучающих примерах по django обычно пишут вьюхи вот так: PHP код:
PHP код:
В статье про админку обещал рассказать про графики, но все никак руки не доходили, нехорошо получилось. Да и рассказывать-то там особо нечего, все слишком просто и «тупо» — графики рисуются через google charts. При этом можно обойтись без всяких библиотек: конструируем себе график по вкусу тут (это полуофициальный инструмент от гугла, на него есть ссылка со справки по api google charts), а потом вставляем полученную строку в шаблон и подставляем переменные вместо тестовых значений. Есть очень тонкая обертка над google charts: django-chart-tools. Суть — та же: собрать график визуально и заменить переменные, просто с django-chart-tools такие графики удобнее поддерживать. Выборку данных можно делать просто через django ORM, или, для удобства/скорости, через django-qsstats-magic, в зависимости от задачи. В итоге (с использованием django-chart-tools и django-qsstats-magic) график пользователей по дням можно вывести примерно так: PHP код:
PHP код:
Django: тесты Используйте для написания тестов django-webtest. Я уже писал про это приложение, но с того времени произошло одно очень важное изменение: django-webtest теперь предоставляет доступ к контексту шаблонов (точно так же, как и стандартный джанговский тест-клиент). Спасибо Gregor Müllegger. Теперь можно писать в таком стиле: PHP код:
django-webtest лучше любой интеграции с twill, т.к. в них нет доступа к контексту шаблонов и полной поддержки юникода, да и twill не развивается. django-webtest лучше стандартного тест-клиента, т.к. предоставляет простой API (попробуйте-ка засабмитить форму со значениями по умолчанию через стандартный тест-клиент). Со стандартным тест-клиентом также нельзя протестировать отсутствие csrf-токена (или очень чер окольными пуями), а с django-webtest это делается тривиально (и даже автоматически). Используйте django-webtest) Тут бы составить попсовую табличку с фичами: у django-webtest будут везде зеленые галочки, а у twill и стандартного тест-клиента — красные то тут, то там. Даже Ian Bicking считает, что django-webtest — это «Cool!». Django: пишем приложение для Вконтакте Это не просто просто, а очень просто. Отличие от обычных сайтов — только в способе регистрации и входа пользователей. Вместо django-registration ставим и настраиваем django-vkontakte-iframe. Все, теперь все посетители — это зарегистрированные и авторизованные django-пользователи, в остальном можно разрабатывать обычный сайт. Разве что еще позаботиться об js, чтобы подгонять размер iframe под размер страницы. Python/Django: работа с русским языком Кто не знает, pymorphy — это питонья библиотека для работы с русским языком. Умеет морфологический анализ и стрелять из пушки по воробьям: например, склонять слова из базы (или простые словосочетания) прямо в шаблоне django или ставить их в нужную форму в зависимости от числа — без явного перечисления всех вариантов склонения. pymorphy вырос из статьи на хабре. Признаюсь, код сначала не был хорош, т.к. это был мой первый опыт общения как с python, так и с nlp (обработкой естественных языков). Но морфологический анализатор был-таки написан — и заброшен на год. В начале этого года возобновил работу над pymorphy и переписал там кучу всего. А весной прошло «соревнование» морфологических анализаторов в рамках конференции Диалог-2010. Там участвовали очень серьезные ребята, результаты проверяли профессиональные лингвисты. pymorphy по дорожке «Морфология» справился лучше всех (скорее всего из-за того, что я как раз тогда выкатил работу с составными словами, записанными через дефис). Также pymorphy был единственным участником, приславшим разбор дорожки с «гразными текстами». Это все особо ни о чем не говорит, но приятно) Python: пара трюков для выкладки пакетов на pypi 1. В setup.py в long_description можно использовать разметку ReST. Удобно положить рядом с setup.py файлик README.rst и потом просто указать PHP код:
2. Есть сравнительно малоизвестный хак с setup.py. Если разметка выглядит не так, как хотелось, или исправили опечатку, или classifier, то делать новый релиз для исправления этих ошибок нет никакой необходимости: можно просто запустить ./setup.py register и данные обновятся. Python: декораторы и with Декораторы и оператор with в питоне часто применяются для одного и того же: выполнить какие-то дополнительные действия до или после определенного куска кода. А это означает, что можно написать такую штуку, которую можно использовать одновременно и как декоратор, и как контекст-менеджер для with (например, так: gist.github.com/573536). Django: принимаем платежи на сайте Если что, через django-robokassa и django-assist-ru сделаны в продакшне тысячи покупок, > млн рублей.
Python/Django: показываем Яндекс.карту на сайте Чтобы не возиться с геокодированием и кешированием, можно воспользоваться приложением yandex-maps. Источник <!-- Вопросы задаем на форуме, не в ЛС --> |
Ответить |
Опции темы | |
Опции просмотра | |
|
|