Показаны сообщения с ярлыком django. Показать все сообщения
Показаны сообщения с ярлыком django. Показать все сообщения

6 ноября 2016 г.

Snippets – приложения для удобного хранения отрывков кодов и их управленем

У программистов в процессе работы часто возникают различные отрывки кодов, которые могут впоследствии пригодиться, но которые трудно запомнить. И такие отрывки часто разбросаны по разным местам и плохо систематизированы.

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

19 сентября 2014 г.

Выполнение задачи точно один раз в Celery

При количестве используемых веркеров больше одного, задача может отработать несколько раз. Порой такое поведение не нужно. И для такого случая Celery даже предлагает решение.

5 сентября 2014 г.

Основы Celery для Django

При создании некоторых web-приложений порой требуется выполнять задачи асинхронно запросу пользователя или периодически.

К первым можно, например, отнести отправку уведомлений по электронной почте. В этом случае невозможно гарантировать быструю обработку запроса. Поэтому отправку уведомления можно поместить в параллельный поток и запрос не будет зависеть от скорости этой самой отправки.

Ко вторым относятся задачи, обычно размещаемые в cron.

И здесь на помощь как раз может придти система типа Celery — асинхронная очередь задач, основанная на передаче сообщений. Надо сказать, что Celery можно и нужно использовать не только в web-приложениях. Но здесь я расскажу о ней применительно к популярному web-фреймверку Django. Еще стоит оговориться, что я раскрою лишь малую часть системы Celery (достаточную для использования в Django), потому как её возможности достаточно велики.

20 сентября 2013 г.

Добавляем некоторые "плюшки" в FeinCMS

В предыдущей моей статье было описано как интегрировать FeinCMS в Django с минимальной функциональностью. Теперь давайте разберемся как несколько расширить возможности системы за счет использования "батареек" FeinCMS.

18 сентября 2013 г.

"Готовим" FeinCMS

FeinCMS - это, как очевидно из названия, система управления содержимым сайта на базе фреймверка Django. Очень простая и очень удобная с точки зрения разработчика Django. Не перегруженная "батарейками в комплекте". Здесь я приведу минимальные действия для использования приложения. На самом деле, возможностей у этой CMS куда больше.

Сразу стоит сказать о том, что установка этой CMS - не N кликов мышью и - заработало. Но за это вы получаете бОльшую расширяемость на уровне фреймверка.

31 мая 2011 г.

CAPTCHA для Django. Альтернативный вариант.

В предыдущей моей записи я рассказал как можно написать свою CAPTCHA для Django. Недостатком этого способа мне видится то, что до функций обработки запросов ("вьюх") не всегда есть доступ, точнее он не всегда оправдан. Например, когда "вьюхи" находятся в сторонних приложениях. Эту проблему можно решить несколькими способами. Один из них — использовать Middleware.

30 мая 2011 г.

Как сделать Captcha для Django

Посмотрев примеры CAPTCHA для Django в сети, не нашел понравившийся. Поэтому решил набросать не сложную свою.

23 марта 2011 г.

Цепочка вызовов методов валидации данных формы в Django

BaseForm.is_valid()
BaseForm._get_errors()
BaseForm.full_clean()
BaseForm._post_clean() -> {
    Model.clean_fields()
    Model.clean()
    BaseForm.validate_unique() -> Model.validate_unique()
}

27 июля 2010 г.

Тянем объект request в любом модуле Django

Импортируя данный модуль можно получить доступ к объекту request в любом модуле Django:
try:
    from threading import local
except ImportError:
    from django.utils._threading_local import local

_thread_locals = local()

def get_request():
    return getattr(_thread_locals, 'request', None)

class ThreadLocalsMiddleware(object):
    def process_request(self, request):
        _thread_locals.request = request

20 июля 2010 г.

Django. Вытаскиваем request в template

В global_settings, в кортеже TEMPLATE_CONTEXT_PROCESSORS должна быть строка "django.core.context_processors.request". Контекст появляется во всех (?) встроенных модулях (в Flatpages точно, именно там он мне был нужен).

Для добавления request в свои темплейты для render_to_response добавляем 3-й параметр: context_instance=RequestContext(request).