• 22 Май
  • 2015
Рано или поздно приходится менять поведение тех или иных сигналов в вашем проекте. Но наибольшее удовольствие доставляют кастомные сигналы, которые могут существенно расширить функционал приложения и сделать его еще более удобным. Инструкция # signals.py from django.dispatch import Signal my_signal = Signal(providing_args=["request"]) def my_signal_handler(sender, **kwargs): # do something my_signal.connect(my_signal_handler) #views.py signals.my_signal.send(sender=N...
  • 19 Май
  • 2015
Для реализации полнотекстового поиска будем использовать библиотеку djorm-ext-pgfulltext Установка pip install djorm-ext-pgfulltext Нужно отметить, что библиотека предназначена для PostgreSQL. Использование Допустим у нас есть некая модель Product, по которой мы хотим организовать поиск: class Product(models.Model): name = models.CharField(max_length=128) slug = models.SlugField(max_length=128, unique=True, default="", blank=True) description = models.TextField() ...
  • 16 Апр
  • 2015
Чем сложнее проект, тем больше специальных шаблонных тегов хочется иметь в своем арсенале. Для чего это может пригодиться? Например, для вывода звезд рейтинга вашего продукта или комментариев. Вот на этом примере и потренируемся. Для начала создадим директорию templatetags внутри нашего приложения. Внутрь положем пустой файл __init__.py, чтобы Django понимала, что в этой директории лежат скрипты. Теперь создаем файл шаблонного тега. Назовем его, например, extratags.py. Давайте разберемся, что ...
  • 01 Апр
  • 2015
Облачный хостинг CloudMouse, на котором был размещен мой блог, потерпел крушение несколько недель назад. На дно вместе с ним ушли все проекты, файлы, базы данных, бэк-апы и труд, который так долго влаживался в каждый из погибших сайтов. Благодаря халатности администраторов, а также моей собственной беспечности и лени, резервные копии базы пропали, а копий вне сервера никто не сделал. Ситуацию спас великий и непобедимый Google. К счастью, он закешировал мой блог полностью, поэтому я смог спасти ...
  • 01 Апр
  • 2015
В процессе разработки очередного проекта на Django я столкнулся с тем, что некий код переходит из одного проекта в другой с небольшими изменениями. Сейчас не буду рассказывать, о каком именно коде идет речь, но я понял, что его можно вынести в отдельный пакет, добавить опции и в последствии использовать в других проектах, когда это понадобится. И вот когда мой модуль был готов к первому тестовому запуску я столкнулся с проблемой: как выложить свой пакет на pypi, чтобы потом установить его при ...
  • 01 Апр
  • 2015
Сегодня попытался залогиниться на сервер и получил такую неприятную ошибку: Host key verification failed Истинной причины ее появления установить не удалось, буду благодарен за обсуждения в комментариях на этот счет. А вот решение все же удалось найти. Сделал следующее. Внимательно прочитал что мне вывела консоль, обнаружил, что указана строка №9 в файле known_hosts: ... Add correct host key in /home/alexander/.ssh/known_hosts to get rid of this message. Offending ECDSA key in /home/alexa...
  • 01 Апр
  • 2015
В продолжение предыдущей статьи хочу рассказать о типах данных, с которыми работает SimpleAPI. IntegerVariable Принимает целочисленные данные, валидирует их и в случае указания данных неправильного формата возвращает сообщение "Wrong data type". Переменная по умолчанию обязательная к указанию (blank=False). Можно задавать дефолтные значения (default). Имеет метод get(), который возвращает значение, переданное в запросе. ВНИМАНИЕ! данное значение возвращается как строка (в следующих версиях мод...
  • 01 Апр
  • 2015
Так вышло, что уже не первый раз приходится писать некий сервис для корпоративного использования. По причине его приватности не буду рассказывать о функционале, скажу лишь, что бизнес крепко связан с вебом. Отличным продолжением работы сервиса оказалось написание аддонов для Firefox, которые существенно упрощают жизнь персоналу. Для этого пришлось написать API, чтобы можно было получать информацию с сервера, а также записывать ее. Для этого я создал простое представление, которое наполнил необхо...
  • 01 Апр
  • 2015
SSH - сетевой протокол, который дает возможность удаленно управлять операционной системой, а также создавать туннели TCP соединений (например для передачи файлов). Название произошло от Secure Shell, что в переводе с буржуйского означает "безопасная оболочка". SSH - это чудо из чудес, которое очень сильно упрощает жизнь людям, владеющим тайным знанием консоли Linux. Особенно SSH становится актуальным при администрировании удаленного сервера, VPS. В этой статье хочу рассказать о таких волшебных...
  • 01 Апр
  • 2015
Дампим данные из БД в файл: sudo -u postgres pg_dump db_name db_name.sql Восстанавливаем данные из БД из файла (предварительно нужно очистить БД от данных): sudo -u postgres psql db_name db_name.sql