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

    Доброго времени суток, уважаемый All!

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

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


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

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

    Возможности DTemplate


    Поддержка проекта


    • Расширенные команды для manage.py (django-extensions)
    • Шаблон файла для создания виртуального хоста Apache (extra/vhost)

    Работа с БД


    • Скрипты для создания начальной БД (extra/init_db)
    • Миграции БД (South)

    Development режим


    • Сессии Vim для часто используемых файлов (sessions/*)
    • Отладочная панель (django-debug-toolbar)

    Production режим


    • Использование сжатия статики (django-compress)
    • Шаблонный тег spaceless_if_not_debug (project.apps.support.debug)
    • Интеграция с Google Analytics (django-google-analytics)

    Организация работы с Django проектом


    • Разделение приложений django на основные, приложения поддержки и сторонние приложения (project/apps, project/apps/support, project/apps/thrdparty)
    • Использование декораторов от piranha (project/lib/decorators.py)
    • Использование JsonResponse от piranha (project/lib/http.py)

    Организация работы со статикой


    • Интеграция с известными сторонними бибиотеками css и js (blueprint-css, oocss, yui, jquery, extjs)
    • Базовые стили для экрана (project/static/css/screen.css)
    • Базовые стили для печати (project/static/css/print.css)
    • Базовые стили для IE (project/static/css/ie*.css)
    • Поддержка whatever:hover (project/static/css/csshover3.htc)
    • Поддержка прозрачных PNG в IE (project/static/css/iepngfix.htc)
    • Плагин blueprint-css с частоиспользуемыми классами (project/static/css/blueprint/misc.css)
    • Плагин blueprint-css для поддержки резиновой верстки (project/static/css/blueprint/liquid.css)
    • Базовый файл перегрузки ExtJS стилей (project/static/css/extjs/overrides.css)
    • Базовые файлы для JS

    Организация работы с файлами шаблонов


    • Базовый XHTML 1.0 Strict шаблон
    • Базовый шаблон для создания ExtJS приложений
    • Шаблоны страниц ошибок 404 и 500

    Миссия проекта


    1. Побудить разработчиков к росту числа новых проектов с открытым исходным кодом и упростить работу над ними.
    2. Поддержать и укрепить позиции существующих проектов на базе которых создан DTemplate.

    Статус проекта


    Проект DTemplate находится в стадии активной разработки и не имеет фиксированных версий на текущий момент.

    Адрес проекта: bitbucket.org/yureg/dtemplate
    Скачать DTemplate выможете выполнив комманду:
    hg clone yureg@bitbucket.org/yureg/dtemplate


    План развития


    • Создание руководства по использованию DTemplate
    • Создать полный список проектов на базе, которых создан DTemplate
    • Создать базовый скрипт fabric для развертывания проекта на production сервер
    • Создать скрипт сборки проекта, который преобразует символьные ссылки реальные файлы
    • Создать базовый шаблон sphinx для создания документации по проекту
    • Создать простой issue tracker в админке независимый от основной БД с возможностью синхронизации с репозиторием
    • Создать автоматические тесты для проверки DTemplate
    • Определиться с лицензированием проекта

    Зависимости


    Python



    JavaScript



    CSS


    UPD: Перенес в блог Django Framework
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 42

      0
      Спасибо вам за сборку! Я думая такие сборки помогут начинающим!
        0
        я надеюсь, что данная сборка будет полезной не только новичкам, но и специалистам django, которым необходимо быстро запустить новый проект. а также админам, которым необходимо поддерживать множество проектов на django
          +3
          Как же меня передергивает когда я читаю такие слова! Очередной денвер но теперь и для джанги. Новичкам поможет хорошый перевод доков и пособий. Это же только запутает.

          Питону и джанге в частности свойственна здоровый минимализм и простота. import this — до постижения дао.
            +1
            пожалуй поддержу, недавно начал баловаться python+django
            туториалы и мануалы очень хорошие, и совсем новичкам в разы полезней их почитать, чем сразу использовать готовые надстройки, не понимая, что они означают.

            А автору спасибо за содержательный пример того, как можно ускорить процесс разработки -)
              0
              это не денвер для джанги и он создан по большей части для собственных нужд, но может быть полезен и другим django разработчикам, как в качестве примера организации разработки или как рабочий инструмент.

              новички, на мой взгляд, должны начинать с нуля, а когда разберутся с django и получат немного опыта могу использовать dtemlpate в качестве примера или еще как либо.
            –1
            > Сессии Vim для часто используемых файлов (sessions/*)

            Все хорошо, но вот приведенное в цитате — как-то некорректно. Все вокруг используют вим?
              +3
              Дело в том, что проект только что был запущен и так, как я использую Vim, то была добавлена только эта возможность. Конечно, хотелось бы расширить диапазон поддерживаемых средств разработки, но у меня пока не дошли до этого руки. Если вы можете в этом помочь, я был бы очень рад.
                –1
                Мог бы запихнуть туда аналог сессий из Емакса, но не уверен, что это вообще надо.

                Редакторов и интегрированных сред очень много; их использование, если по-хорошему, должно быть перпендикулярно языку программированию, фреймворку и конкретной программной системе.

                Мы ж не храним на память эти злосчастные папочки .svn по дереву проекта! Так зачем хранить служебные файлы другого инструмента? Если сборка Django — то только Django, если конфигурация vim — то без питона.

                  0
                  это сборка не только Django, но и других технологий для веб-разработки. Vim попал туда, только из-за того, что я им пользуюсь и мне удобно в начале работы открыть сразу набор необходимых файлов для редактирования.

                  а насчет конфига vim у меня есть вот такой репозиторий github.com/yureg/vim-config
                  не факт что он подойдет всем, но может будет полезен
              +4
              Фреймворки фреймворков уже близко…
              • UFO just landed and posted this here
                +1
                Б́ольшая часть такого шаблона — набор чисто индивидуальный. Так что не вижу смысла в одном «Для всех». Хотя уверен, что и этот найдет своих ценителей, ну или поможет почерпнуть полезную, «неб́ольшую» часть шаблона. Спасибо :)
                  0
                  создавая эту сборку, хотел подобрать часто используемые компоненты. можно добавить другие компоненты, как альтернативу.
                    +1
                    Тогда это разрастется еще до бо́льших размеров. Куда более удобней сделать «инсталлер» для скелетона, а в конфиге указывать нужные компоненты и параметры, в итоге будет один инсталлер, с несколькими конфигами для разных нужд. Это лишь предложение, я ленивый, делать этого не буду :D
                      0
                      (: надо подумать над реализацией установщика. только проблема в том, что я пока не знаю какие компоненты нужны. сперва, наверное, нужно составить список всех возможных компонентов подходящих по идеологии проекта
                        +1
                        Ну установщик может содержать все, что только возможно, суть в том чтоб потом уже в скелетоне находился только необходимый набор.
                          +1
                          Я бы посоветовал взглянуть на архетипы мейвена
                      +1
                      Черт, минуту оттирал ударение на «Б» с монитора :)
                        –1
                        Я сонный был, ставил как обычно ударение после «о», а оно отображалось в text field над «л», а если после «б», то над «о», вот так и оставил :) Наверное проблема в линуксовых шрифтах.
                      +3
                      наш, более общий скелетон без либов, только обязательные вещи:
                      django.org.ua/wiki/DjangoProjectSkeleton
                      svn co django.org.ua/svn/project-skeleton/trunk/
                        0
                        Ваш вариант, структура папок достаточно интересно. Но никак не получается заставить его работать (
                        Вариант из топика работает успешно
                        +2
                        То, что Вы сделали, бесспорно, хорошая работа. Правда, осмелюсь предположить, что у каждого продвинутого джанговода есть свой «минимальный набор», а новички будут днями отлавливать внезапные ошибки. А ещё я нахожу там вещи которые меня сильно «расстраивают»…

                        settings.py
                        97>from project.static import *
                        98>from run.settings import *
                        НE делайте никаких зависимых импортов в settings.py, а если и делаете, то заверните в try/except и обеспечьте fallback. Иначе получите проблемы при конфигурировании окружения Django вне проекта (setup_environ)

                        trunk, south и грамотная схема проекта. Все остальное подключается двумя строчками.
                        Спасибо, почерпнул несколько идей.
                          0
                          ок, учту!
                          +1
                          Большое спасибо за работу!
                          Преподаю в кружке.В том числе и Веб-технологии.
                          Считаю, что правильнее давать python чем PHP (Из за универсальности). Так-что присмотрюсь обязательно.
                            +1
                            если нужна будет какая-нибудь помощь в подготовке материалов по веб, обращайтесь.
                            правильным делом занимаетесь!
                              0
                              Спасибо.Если что — отпишусь.
                            +2
                            spaceless_if_not_debug это ваша наработка?
                            Можно подробнее и пример использования?
                              0
                              тоже самое что и {% spaceless %} только работает, когда DEBUG=False
                                +1
                                Судя по коду — обертка над стандартным тегом spaceless при условии settings.DEBUG == True
                                  0
                                  прошу прощения, имел в виду False:)
                                –2
                                эээ!!! это круто!
                                  0
                                  Очень-очень-очень полезная для меня штука. Продолжайте.
                                    +1
                                    Спасибо за труд! Полностью оно мне не подойдёт, но в образовательных целях внутрь загляну с удовольствием.
                                      0
                                      обратите внимание на обработку статики и базовые шаблоны стилей и html. я много времени потратил на это.
                                      +2
                                      Советую прикрутить pip (http://pypi.python.org/pypi/pip), для автоматической обработки зависимостей.

                                      Примерно такой файл:

                                      Django==1.1
                                      south==0.6.2
                                      django-debug-toolbar==0.8.1
                                      django-extensions==0.4.1
                                      django-compress=1.0.1
                                        0
                                        ок, спасибо
                                        +1
                                        Очень хорошо будет для первичного освоения, я считаю.
                                          +1
                                          Большинство сошлось на мнении, что для новичков данный проект сыграет отрицательную роль
                                          +1
                                          автору респект!
                                            –1
                                            Без обид, но имхо много лишнего, просто собрано в одну кучу все. Лучше с нуля начинать и добавлять сторонние библиотеки по мере необходимости.
                                              0
                                              например
                                              0
                                              Слишком много. Я, например предпочитаю South'у django-evolution. Не понимаю, что мешает Google Analytics подключать руками. (ой, почитал про приложение — оно бывает полезно, когда несколько сайтов) Не пользуюсь всякими штучками типа extensions, не пользуюсь CSS-фреймворками (зачем??), и т.д.

                                              Но для новичков может быть полезно. Советую вместо дурацкого django-compress использовать django-assets, который не только сжимает, но и объединяет в один файл, экономя HTTP-запросы (:

                                              Only users with full accounts can post comments. Log in, please.