Обновить
16.05

Django *

Фреймворк для веб-приложений на Python

Сначала показывать
Порог рейтинга
Уровень сложности

HowTo: continuous integration проекта на Django с помощью TeamCity

Время на прочтение8 мин
Количество просмотров14K

Введение


В процессе разработки, создавая новый функционал, всё чаще широкими мазками стал задевать старый код чем разрушал логику его работы. Это заставило всё-таки написать юнит и интеграционные тесты для старого кода и автоматизировать их запуск, т.к. гонять руками все тесты как-то грустно. Как раз вспомнилось недавнее руководство по CI Django в Jenkins и довольно старое по Webtest в Django. В итоге была совершена попытка поднять Дженкинса, но он как-то на моей убунте не взлетел и я грешным делом вспомнил про TeamCity. «Раз уж пишу в PyCharm и нашёл к нему подход, то, наверно, и TeamCity осилю, ведь конторка-то одна!» — подумалось мне… В общем-то я оказался прав, и, пока мне позволяет карма, решил подарить вам ультраполезный (и мегаподробный), в отличие от моего предыдущего, мануал :)

Итого: кому требуется руководство по поднятию интеграционного сервера TeamCity, и тестирование в нём Django проектов c тестами nose и webtest в виртуальном окружении python с автоматическим его (окружения) обновлением — добро пожаловать под кат.

Осторожно! Для работы TeamCity требуется (согласно документации) sun/oracle версия JVM…
Читать дальше →

Мой вариант MultipleInput + Autocomplete

Время на прочтение5 мин
Количество просмотров6.8K
Для начала всех хотелось бы поздравить с наступающими праздниками!

А теперь к сути моего повествования.

Несколько недель назад мне потребовалась сделать выпадающие списки в django. Значения должны подгружаться автоматически по мере ввода и пользователь должен иметь возможность как выбрать значение из списка, так и добавить своё.

Для начала посмотрим, какой результат мы преследуем:


Читать дальше →

Вышла Django 1.4 alpha 1

Время на прочтение1 мин
Количество просмотров874
Django
Разработчики великолепного фреймворка решили порадовать нас перед Новым Годом — и зарелизили 1.4 альфа версию!

Примерный график выхода версий:
  • Неделя с 30 Января 2012: первый бета релиз.
  • Неделя с 27 Февраля 2012: первый релиз кандидат.
  • Неделя с 5 Марта 2012: финальный релиз.

Сразу обращу внимание, что Python 2.4 больше не поддерживается. Минимум — версия 2.5.
Под катом обзор новых возможностей фреймворка

Мониторим Django проекты в top'e

Время на прочтение3 мин
Количество просмотров2K
В этой статье я опишу как настроить Django так, что б на сервере в top'е можно было видеть нагрузку на сервер от каждого из Django-проектов.
Читать дальше →

Удобное приложение для реализации субдоменов в Django — django-hosts

Время на прочтение1 мин
Количество просмотров7.6K
django-hosts — полезное приложение от замечательного Jannis Leidel, который входит в состав Django core-developers и курирует большое количество Django-проектов.
Документацию можно найти на readthedocs.
Пример установки:
  • Устанавливаем: pip install django-hosts
  • Добавляем 'django_hosts' в INSTALLED_APPS
  • Добавляем 'django_hosts.middleware.HostsMiddleware' в MIDDLEWARE_CLASSES
  • В директории проекта создаем файлик назовем его например hosts.py
  • Примерное содержание hosts.py:
    from django_hosts import patterns, host
    host_patterns = patterns('path.to',
        host(r'api', 'api.urls', name='api'),
        host(r'news', 'news.urls', name='news'),
        host(r'forum', 'forum.urls', name='forum'),
    )

    В соотвтетствии с файлом hosts.py у нас появятся 3 хоста: api.site.com, news.site.com, forum.site.com.
  • В settings.py добавляем: ROOT_HOSTCONF = 'projectname.hosts'

Не забываем про настройку wildcard субдомена (Хотя не обязательно wildcard — достаточно прописать необходимые. Ну а как все это сделать думаю все знают).
Читать дальше →

Вышла новая «стабильная» версия Pinax — 0.9a2

Время на прочтение1 мин
Количество просмотров2.3K

Знаю что многие недолюбливают Pinax, поэтому особо много писать не буду — отделаюсь ссылочкой и парой заметок:
  • Сделано несколько тем (я потратил немного свободного времени на создание темы на jquerymobile и чуток помог с темой на bootstrap)
  • Много что изменилось, но до сих пор куча нюансов которые нужно рефакторить и рефакторить..(имхо)
  • Оставили только 4 стартовых проекта (static,zero,basic,account мне так нехватает social_project из предыдущих версий..)
  • До сих пор понять не могу почему они используют django-staticfiles вместо встроенного в django 1.3.x.


Почему стабильная в кавычках и в версии есть буква «a», намекающая на то что это альфа-версия и многое другое можно прочитать в блоге проекта.

Настройка Jenkins для django проекта с нуля

Время на прочтение3 мин
Количество просмотров56K
Всем привет.

Значительное время в нашем проекте использовалась самописная система интеграционного тестирования — чекаут кода по хуку в системе контроля версий, прогонка тестов с поддержкой отчётов по покрытию кода, запись результатов в отдельный html-файл, который был доступен разработчикам через веб. Естественно, потом пришлось делать поддержку локов, чтобы одновременно не запускалось сразу два тестирования и т. п.

В конце концов на ее поддержку стала уходить ощутимая часть рабочего времени, которая давно свела к нулю все преимущества простоты разработки такой системы, и было решено установить нормальный сервер Continuous Integration.

В качестве новой системы был выбран Jenkins, о его установке и настройке для django-проекта и пойдет речь в этой статье. Кто заинтересовался, добро пожаловать под кат.
Читать дальше →

Makefile — умные шелл-скрипты для Джанго

Время на прочтение4 мин
Количество просмотров8.8K
Make — одна из базовых утилит Юникса, есть на каждой юниксовой машине, и, к сожалению, неизвестная многим веб-разработчикам. В этой стате я покажу, как она может упростить работу, а сначала — постановка проблемы.

Как не держать всю эту схему в голове?

Шаблон проекта на Джанго с инструментами сборки и утилитами

Время на прочтение6 мин
Количество просмотров19K
Иногда приходится создавать с нуля сайт на Джанге. Это и тесты концепций, и простенькие странички (ведь если мы в проекте используем разные мощные инструменты, почему бы сайт-визитку не сделать тоже с их помощью, избавив себя от ручной работы?).

Итак, представляю публике проект под девизом «Поменьше писанины! Побыстрей, дебаг!» Набор для скоростной разработки на Джанго.

Это 2 шаблона:
  • шаблон конфига buildout, который подтягивает и собирает все необходимые проекту пакеты
  • шаблон проекта, а именно настройки, включающие все нужные инструменты, и набор статики (готовые файлы на Haml и Sass)


Читать дальше →

Кто создал, кто обновил или пишем своё встраиваемое приложение на django

Время на прочтение4 мин
Количество просмотров12K
Как вы знаете, django очень мощный и гибкий фреймворк. Для него создано огромное количество приложений, как и каких-то личных так и публичных. Приложения могут быть как и достаточно монотонными, так и достаточно гибкими и даже встраиваемыми в другие приложения.
Читать дальше →

Cacheops

Время на прочтение3 мин
Количество просмотров8.7K
Некоторое время назад я писал о системе кеширования. Помнится, я обещал продолжение, но сейчас решил, что строка кода лучше сотни комментариев, теорию оставим на потом. Поэтому сегодня у нас своего рода анонс с парой советов по использованию в одном флаконе. Встречайте, cacheops — система кеширования и автоматической инвалидации кеша для Django ORM.
Читать дальше →

Интеграция Django и Selenium

Время на прочтение3 мин
Количество просмотров8.2K


Всем привет.

Ни для кого не секрет что тестирование приложений является важным этапом разработки ПО, а если вы разрабатываете веб-приложения, то вам просто необходимо тестировать веб-интерфейс. К счастью, для этой цели существует такой инструмент как Selenium. Небезызвестные на хабре компании СКБ Контур и Яндекс уже выбрали его как инструмент функционального тестирования своих приложений и сервисов (Яндекс рассказывал об этом на недавно прошедшей YaC).

Теперь к делу.
В одном из проектов, над которым я работаю, мы использовали Selenium начиная еще с первой ветки. Но время не стоит на месте, вышел Selenium 2.0, основанный на технологии webdriver, более функциональный, удобный, и правильно имитирующий события в браузере (подробнее о преимуществах).

Чтобы не заниматься обновлением старого кода поддержки Selenium внутри нашего приложения (а вдруг это придется делать еще и не один раз?), а также чтобы попробовать сделать что-то полезное для других разработчиков, мы решили сразу вынести интеграцию с Selenium в отдельную библиотеку.
Что из этого вышло

Плавный перезапуск FastCGI-процессов — django_graceful

Время на прочтение3 мин
Количество просмотров3.3K
Из всех способов деплоинга django-проектов мой любимый — FastCGI. Он поддерживается большинством веб-серверов, позволяет внятно разграничить права доступа и имеет массу других преимуществ.

Однако в django его реализация не лишена недостатков. Чтобы запустить FastCGI-сервер нужно выполнить «./manage.py runfcgi» с немаленьким количеством параметров, которые если и можно запомнить, то точно не захочется писать каждый раз руками. А если это происходит в контексте обновления кода проекта на боевом сервере, то команд становится ещё больше. Приходится писать различные wrapper-ы для запуска и перезапуска, которые засоряют проект.
Читать дальше →

Ближайшие события

YTupload ver. 0.1 (Конвертируем и загружаем на YouTube)

Время на прочтение1 мин
Количество просмотров1.3K
Доброго времени суток!

Продолжаю тему «Конвертируем и загружаем на YouTube». Благодаря ценным комментариям хабралюдей, проект YTupload не был заброшен и забыт, а выложен на GitHub и усовершенствован.

Краткая аннотация


YTupload — проект, задача которого, конвертировать и загружать ролики на Ваш аккаунт в youtube. Написан на django.
Читать дальше →

Еще одна реализация поля «город» для Django

Время на прочтение5 мин
Количество просмотров7.5K
«Еще одна» — потому что мне кажется, что я что-то упускаю и, в действительности, есть хорошее, но неизвестное мне решение “из коробки”. Тем не менее, вот мой рецепт:

Читать дальше →

Многоязычные модели Django для начинающих

Время на прочтение4 мин
Количество просмотров21K

Вводная


Работаю я, как и все адекватные программисты, над социальным порталом который покорит всех от грудничков до маразматиков. И так как цели наполеоновские — нужно учесть возможность использования сервиса даже теми представителями человечества, которые не владеют великим и могучим. Знаю, что многие долго боролись с вопросом локализации именно контента (перевод отдельных полей модели на разные языки), т.к. локализация интерфейса, в пределах общепринятых, в Django решена. Суть проблемы в том, чтобы одна и та же модель (это важно! к примеру пункты единого для всех языков каталога) имела переводы своих полей на разные языки. Те кто давно «на игле» этого фреймворка уже наверняка нашли для себя наиболее подходящую методу решения этой проблемы, я же хочу предложить способ решения и набросать порядок действий для начинающих, чтобы они не сбежали по рельсам на рубиновые копи.
Читать дальше →

Опубликованы результаты django dash 2011

Время на прочтение1 мин
Количество просмотров941
Первое место досталось команде Loosers из России.

Они представили приложение djangolint.
Mike Yumatov, Dima Kukushkin, Natascha Yumatova — примите поздравления.

Второе досталось команде Dumbwaiter Dumbwaiter с их приложением Proposalmatic.

Третье поделили Whitescape с Staste и Jupo Systems с их проектом Drawn By.

Рисуем графики (диаграммы) в Django

Время на прочтение5 мин
Количество просмотров36K
django-google-charts

Многие веб-разработчики время от времени сталкиваются с необходимостью визуализировать сравнительно большое количество данных при помощи диаграмм (далее я буду называть их графиками, хоть это и не совсем верно). Задача не нова, и в сети есть множество готовых решений: работающие на стороне сервера и на стороне клиента, использующие изображения, Canvas, SVG, Flash, Silverlight…

В этой статье я расскажу про django-google-charts и некоторые особенности использования Google Chart Tools для построения графиков на сайте под управлением Django.

Часто, когда нужно добавить график на страницу, разработчик идет по пути наименьшего сопротивления: копирует JavaScript из примера в интернете и как-нибудь выводит в него данные из приложения. Получается что-то наподобие:

var chart_data = [
    {% for row in chart_data %}
    [{{ row.0 }}, {{ row.1 }}],
    {% endfor %}
];

Почему это плохо?

Сервис подбора имён и названий от идеи до реализации или Django как отличная платформа для стартапов. Продолжение

Время на прочтение2 мин
Количество просмотров1.9K
В предыдущей статье я писал с чего начинался стартап namingservice.org. В этом топике я продолжу описывать следующий этап материализации идеи. После того как документ «Видение проекта» был готов, я подумал что было бы здорово перенести на бумагу виды сайта, т. е. то как он должен выглядеть, и как я себе его представлял.

Виды


Всё началось с вида домашней страницы. Она должна была давать краткое представление о проекте, и содержать шапку страницы (логотип, слоган, навигация, кнопки логина и регистрации), плюс я решил что будет полезным отображать на главной странице непосредственно заказы с кратким описанием и ценой.

image
Читать дальше →

Полная русификация админки

Время на прочтение10 мин
Количество просмотров41K

Здравствуйте. На днях возникла задача русифицировать админку django включая названия моделей, полей и приложений. Основной целью было избежать модифицирования кода django. Продолжительное гугление не дало целостной картины этого процесса. Поэтому я решил собрать все в одном месте.
Сразу скажу, что еще в самом начале проекта поставил django-admin-tools и тем самым сохранил себе некоторое количество нервных клеток. А все манипуляции проводились над django 1.3.
Интерисующихся прошу под кат

Вклад авторов