Обновить
19.05

Django *

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

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

Авторизация через новый API сайта Вконтакте.ру

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

Облегчало реализацию два факта: первый заключается в том, что Open API мне очень напоминал Facebook Connect, с которым я уже работал. Второй факт был ещё весомей — у меня уже есть библиотека в которой каждый вариант авторизации (OpenID, OAuth, FacebookConnect) являются отдельными бэкендами и написать дополнительный, тем более так похожий на FC не выглядело сложным заданием. В итоге, можно сказать что по факту это действительно оказалось плёвым делом.

Итак, что же нужно для авторизации по Вконтакте.ру?
Читать дальше →

Пишем функциональные/интеграционные тесты для проекта на django

Время на прочтение8 мин
Количество просмотров17K
В этой захватывающей статье я расскажу про инструменты, с помощью которых можно писать функциональные тесты для django-проекта. Есть куча разных других способов это делать, но я опишу один — тот, который, на мой взгляд, самый простой. Между делом создадим красивый отчет по code coverage (субъективно — приятнее тех, что делает coverage.py). И еще, в качестве приправы, будет немного болтовни про тестирование.

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

Django 1.2 и CSRF

Время на прочтение5 мин
Количество просмотров11K
CSRF, или Cross-Site Request Forgery (межсайтовая подделка запроса) — это, возможно, одна из самых забываемых уязвимостей. Разработчики, как правило, знают о SQL инъекциях и XSS атаках, но очень часто забывают о CSRF-атаках.
Читать дальше →

Загрузка нескольких файлов в Django — Multifile upload Django SWFUploader

Время на прочтение9 мин
Количество просмотров7.8K
Django предоставляет отличные средства для быстрого построения back-end без лишних телодвижений. Однако создание на его основе галлереи связано с множеством ручной работы по загрузке каждого файла в отдельности.

Решений у этой проблемы несколько:
  1. загрузка архива и его распаковка на сервере,
  2. использование специального поля,
  3. имитация множественных post-запросов.

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

Задумка проста, модифицируем стандартный интерфейс добавления, так что бы перехватывать событие сохранения объекта. Заполненные поля будем использовать в качестве шаблона для создания множества объектов для выбранных файлов.

Итак выполним следующие действия.

все 8 шагов

Автоматическая отсылка анонсов в твиттер

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

Как оказалось, делается это совсем несложно.

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

Если поумнеет

Время на прочтение3 мин
Количество просмотров3.3K
Ох этот скромный {% if %}. Краеугольный камень шаблоной логики Django.

Каждый, кто начинал работать с Django 1.1 (или ранее), почти наверняка спотыкался об этот камень — шаблонный тег {% if %} поддерживает булеву логику только на базовом уровне.
Читать дальше →

Всем по сообщению

Время на прочтение6 мин
Количество просмотров15K
В сегодняшних веб-приложениях часто требуется выдать посетителю некоторое оповещение. Будь то «Ваш комментарий сохранён и ожидает модерации» или же «Благодарим за проявленный интерес, мы обязательно вышлем Вам приглашение, как только откроемся», эти небольшие сообщения появляются то тут, то там постоянно, так что весьма здорово иметь удобный интерфейс для отображения их пользователю.

Идущее в поставке с Django приложение аутентификации и авторизации (django.contrib.auth) всегда включало базовый функционал для отображения всплывающих сообщений пользователю, но он имел несколько досадных недостатков. В Django 1.2 же теперь есть совершенно новый фреймворк для таких сообщений, написанный в первую очередь Тобаясом Макналти (Tobias McNulty).

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

GROUP_CONCAT для Django ORM

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

Агрегатные функции в Django ORM — крутые. Это обстоятельство послужило поводом добавить еще одну =)

Далее речь пойдет о mysql-специфичной функции GROUP_CONCAT и волшебных розовых пони, как на картинке django-trunk.
Читать дальше →

Развертывание сайта на Джанго, используя FastCGI

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

От переводчика


Данную статью я прочитал на Django Advent приуроченному к уже скорому выходу Django 1.2 и она показалось мне настолько интересной, что я решил ее перевести. Далее текст статьи.

Когда разрабатываешь сайт на Джанго, так легко просто открыть консоль и напечатать:

python manage.py runserver

С этой простой командой управления ваши медиа файлы админки сайта поддерживаются правильным образом, PYTHONPATH правильно настроен и включает корневую папку нашего проекта, а так же запущен автоматически перегружающийся веб-сервер на указанном нами порту (от переводчика: по умолчанию порт 8000). Так просто!

Не удивительно, что люди так разочаровываются, когда приходит время положить их сайт на боевой сервер: существует так много шагов в этом процессе и поэтому сложно все их выучить и сделать все правильно. Неудивительно, что вся эта сложность приводит к тому, что написано много статей о развертывании веб-сайта на Джанго. Но почти все из этих статей фокусируются на развертывании сайта используя Apache и mod_wsgi или mod_python.

Однако иногда Apache не идеальное решение. Может быть ваш VPS имеет только 256 МБ памяти, а может быть вы хотите избежать сложности настройки Apache при установке. Или может быть вам просто не нравиться Apache. По любой из этих причин мы можем обратить свое внимание на FastCGI.
Читать дальше →

Деревья в админке django

Время на прочтение2 мин
Количество просмотров12K
Редактировать модели, представляющие собой деревья в админке django очень неудобно и ненаглядно. Сразу возникло желание выводить вместо списка объектов дерево, для этого можно использовать замечательную библиотеку jstree.
Чтобы эффективно работать с деревьями в django существует mptt, которая добавляет в модель поля для эффективной выборки и методы для этого, а также шаблонные теги для вывода деревьев и т.п.
Если вы не используете mptt, у вас есть просто ссылка на parent — jstree можно подключить к с помощью одного javascript, про это — отдельная статья.
Далее про модели, использующие mptt.
Читать дальше →

Работа с формами в Django

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров39K
Формы являются одной из самых вкусных вещей в Django (после моделей, админки, url-маршрутизации и т.д.). Перед вами небольшое, но ёмкое руководство по их использованию, представляющее собой разбор 8 часто встречающихся ситуаций при программировании форм.
Читать дальше →

DTemplate — шаблон django проекта для ускорения разработки

Время на прочтение3 мин
Количество просмотров5.2K
Доброго времени суток, уважаемый All!

Хочу представить на суд хабрасообщества проект, над которым я работал последнее время. Очень хочу получить конструктивную критику и предложения по его улучшению.

Описание проекта


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

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

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

Создание локальной копии документации Django

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

Да-да, это снова я и снова о документации Django :) На этот раз не будет длинных переводов, просто небольшая заметка.

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

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

Перевод Django Documentation: Models. Part 4 (Last)

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

Доброго времени суток!

Это последняя часть серии моих переводов раздела о моделях из документации Django.

Перевод Django Documentation: Models. Part 1
Перевод Django Documentation: Models. Part 2
Перевод Django Documentation: Models. Part 3

_____Многотабличное наследование
_______Класс Meta и многотабличное наследование
_______Наследование и обратные отношения
_______Создание поля с parent_link
_____Прокси-модели
_______Запросы возвращают объекты модели, к которой адресованы
_______Ограничения для базовых классов
_______Менеджеры прокси-модели
_______Различия между прокси-моделями и unmanaged-моделями
_____Множественное наследование
_____Переопределение имен полей запрещено


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

Django multiple database support — теперь поддерживает множественные соединения с базами данных

Время на прочтение1 мин
Количество просмотров1.5K
Весь твиттер буквально кипит от это новости – django теперь поддерживает множественные соединения с базами данных. Фича влита в транк и описана в документации.

В документации (по ссылке выше) описан процесс настройки и использования нескольких баз данных в джанго:

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

Настраиваем Aptana Studio с нуля для работы над Django-проектами

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

Зачем оно вообще?


    Тут должен быть текст в духе «раньше я качал Eclipse Classic, который весит 160 с лишним метров, чтобы поставить на него PyDev и только тогда… Но потом я попробовал Aptana...».

    Собственно, Aptana Studio представляет собой среду для веб-разработки, построенную на основе Eclipse. Причем это значит именно то, что значит — почти все плагины Eclipse совместимы и с Aptana, только при этом в ней нету по умолчанию всей этой универсальности и Java-наворотов своего прародителя. И да, старый добрый PyDev здесь тоже есть, а на мой взгляд это — лучшая IDE-надстройка для питона. Естественно, для написания мелких проектов куда быстрее и проще использовать Geany, но сейчас не о нем :)
Читать дальше →

Допиливаем Django-admin бензопилой. Часть II — WYSIWYG

Время на прочтение5 мин
Количество просмотров10K
Итак обещанное продолжение прошлого поста. В результате мы прикрутим TinyMCE к flatpages и превратим лист/форму созданной модели с картинками в простой файловый менеджер для вставки картинок. Для этого понадобится совсем немного Javascript и единственная строчка в 'admin.py'.
Читать дальше →

DjangoCMS2.0 — быстрее, больше, эффективней

Время на прочтение5 мин
Количество просмотров70K
Django — очаровательный в своей простоте и гибкости фреймворк. Однако, для быстрого построения большого числа несложных сайтов требуется поставить разработку сайтов на поток. Разрабатывать систему управления сайтом каждый раз утомляет и грозит потерями времени. Именно поэтому программисты часто обращаются к готовым CMS.

Почти все знают о гигантах конвеерного веб-программирования, основанных на php — Drupal, Joomla!, Wordpress и прочих, но не все знают, что в мире Python существуют не менее мощные и даже гораздо более зрелые инструменты.

Ниже - чуть-чуть о них и много - об одном из новичков индустрии

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