Source

fastdev-django / readme.ru.md

Full commit

Пакет быстрой разработки на фреймворке Джанго

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

Просто добавьте в buildout.cfg пакет, который хотите использовать в проекте, и ваш коллега, работающий с этим же проектом на другой машине, получит его автоматически, запустив скрипт buildout. Не нужно сравнивать настройки ваших систем, ни пакеты Питона, ни использовать virtualenv.

В этой конфигурации у вас сразу есть

  • улучшенная консоль Джанго
  • средства отладки (PuDB, Werkzeug, Панель Отладки Джанго)
  • быстрая разметка для шаблонов (HAML, SASS)
  • средства контроля кода (pyflakes, pep8)
  • разные полезные пакеты (reversion, tastypie, annoying)

Первоначальная версия пакета появилась благодаря работе моих коллег:

Требования

  • Python 2.5+
  • Ruby 1.8+ (для Sass)
  • SQLite 3 или другая база данных
  • libxml-dev, libxslt-dev

Все остальные пакеты собираются автоматически скриптом buildout.

Как установить Ruby и другие библиотеки в Ubuntu:

sudo apt-get install libxslt-dev python-dev libpq-dev rubygems make openjdk-6-jre-headless --no-install-recommends

Установка

Склонируйте проект:

hg clone https://hg.bitbucket.org/siberiano/fastdev-django
rm yourproject/.hg/hgrc

Если вам нужен CoffeeScript, прочтите параграф "CoffeeScript" ниже.

Использование

make run

Изменили конфигурацию buildout.cfg, и нужно пересобрать проект? Обновили переводы в locale? Просто запустите make run. Команда make shell_plus тоже умная и может пересобрать проект, если зависимости в buildout.cfg изменились.

Подробности о принципах работы make — на странице Makefile and Less Keyboard Banging in Shell в Вики.

Важно: вместо manage.py [команда] используйте ./bin/django [команда]. Этот скрипт собирается при помощи buildout. bin/django подключает пакеты окружения проекта.

Пакеты

bootstrap.py

Устанавливает скрипт zc.buildout.

IPython и django-extensions

Улучшенная консоль Питона с автозавершением кода и макросами. Пакет extensions добавляет в Джанго команду shell_plus, которая автоматически загружает модели и запускает IPython.

$ make shell_plus

PuDB

Среда отладки Питона, выглядящая как старые добрые QBasic или программы Борланда 80-х годов.

Чтобы использовать его, вставьте такую строку в месте, откуда нужно отлаживать:

import pudb; pudb.set_trace()

Панель отладки

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

Haml

Лаконичная разметка, которая превращается в HTML. С файлами HAML намного проще работать и программисту, и верстальщику. HamlPy — это реализация HAML на Питоне, в которой есть также и вариант разметки Джанго:

- extends 'base.html'
- load i18n
- block body
    %h1
        - trans 'Привет'
    .items_effects
        %ul.items
            - for item in menu
                %li.item
                    %a{'href': "{% url item.get_absolute_url %}",
                        'title': "{{ item.title }}"}= item.name
                    %br
                    = item.description

    .footer
        - trans 'Пока'

Django Compressor и Sass

Compressor — модуль для сжатия на лету CSS и ЯваСкрипта из страниц. Здесь он пока используется только для преобразования таблиц на языке SASS в корректную разметку CSS. Использование:

Шаблон (на языке Haml):

- compress css
    %link{'href': '{{ STATIC_URL }}css/screen.sass',
          'rel': 'stylesheet', 'type': 'text/sass',
          'media': 'screen,projection'}
- endcompress
...

Стиль на SASS, screen.sass:

@mixin border-radius ($radii)
    -webkit-border-radius: $radii
    -moz-border-radius: $radii
    -ms-border-radius: $radii
    -o-border-radius: $radii
    border-radius: $radii


.button
    background: #88f
    +border-radius(1.5em)  // здесь будет несколько правил под разные
                           // броузер

Не включено: чтобы ускорить загрузку страницы, compressor может разобрать теги script в странице, открыть файлы скриптов, уплотнить их и сжать в один файл.

CoffeeScript

Если вы хотите использовать CoffeeScript, сделайте следующее:

  • откройте Makefile и раскомментируйте строку run: bin/coffee
  • установите USE_COFFEE_SCRIPT = True в файле settings.py
  • если у вас ОС Ubuntu, проверьте, что установлена программа curl (по умолчанию её нет):

    sudo apt-get install curl

Вам НЕ НУЖНЫ ни Node.js, ни npm, чтобы проект запустил CoffeeScript. Программа Buildout установит их автоматически. Это удобно, когда нужно развернуть проект на хостинге.

WSGI

В папке bin автоматически создаются скрипты WSGI для настроек разработки и рабочих: bin/django.wsgi и bin/prod.wsgi соответственно. Подключите ваш сервер Apache или Nginx к ним.

Если вы изменили пакеты в buildout.cfg, и нужно подключить их к скрипту, просто запустите снова make bin/django.