1. Dmitri Lebedev
  2. fastdev-django

Wiki

Clone wiki

fastdev-django / Home.ru

In English

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

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

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

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

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

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

Установка

Склонируйте проект и удалите связь с репозиторием fastdev:

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

Установите необходимые библиотеки, вот команда для Debian/Ubuntu:

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

Чтобы использовать 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 подключает пакеты окружения проекта.

Требования

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

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

Пакеты

bootstrap.py

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

IPython и django-extensions

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

    $ make shell_plus

PuDB

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

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

    import pudb; pudb.set_trace()

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

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

HamlPy

Лаконичная разметка, которая превращается в 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 к ним.

Updated