Elvis 06.01.2011 17:37

PythonСкелет для Django с поддержкой HAML, SASS и Coffee-Script

В Ruby сообществе давно модно использовать альтернативный синтаксис для основных языков веб-разработки: HTML, CSS и JavaScript.
Для HTML документов используется синтаксис HAML.
Для CSS используются LESS, SASS или CleverCSS. Из них SASS самый продвинутый, к и так огромной куче возможностей можно добавить фреймворк Compass, который содержит много полезных функций, миксинов и имеет поддержку популярного CSS фреймворка BluePrint.
Вместо JavaScript люди пишут скрипты на CoffeeScript - альтернативном синтаксисе яваскрипта. CoffeeScript похож по синтаксису на Python и имеет много заимствований "синтаксического сахара" из Ruby и Python.
К сожалению, о том, как организовать поддержку этих технологий в Django-проектах практически не пишут. Я попытался реализовать поддержку сразу трех технологий в одном проекте и столкнулся с ошибками. После нескольких часов копаний в коде я исправил ошибку в webassets (основная библиотека для поддержки этих технологий) и добавил некоторые функции в hamlish (к сожалению после этого он стал зависим от Django, поэтому я не стал его форкать, а сохранил прям в проекте).

Итак, встречайте - django-hsc-skel!
Основа для Django-проектов с поддержкой HAML, SASS (+Compass) и Coffee-Script>
Инструкция по установке подробно описана в файле INSTALL.rst

Дополнительные "полезности" в проекте:настроена система логгирования в файл. Пользуйтесь командой tail -f logs/django.log - очень удобно!
новые приложения можно создавать в папке apps. В settings необходимые настройки для этого имеются
сами settings сделаны в виде папки. settings, специфичные для окружения разработки пишите в local.py, а для продакшена - в production.py. Что бы "включить" те или иные настройки, создате символическую ссылку current.py на файл local.py или production.py
Некоторые особенности:webassets пришлось поправить и форкнуть. Патч автору отправил, но пока в зависимостях указан мой форк.
hamlish включен в проект в виде отдельного файла в папке libs
Ссылка на проект: https://bitbucket.org/traditio/django-hsc-skel

Буду рад услышать ваши комментарии!


Тэги: coffeescript django haml python sass
+ 9 -
Похожие Поделиться

razum2um 06.01.2011 19:12 #
чегота не вкурил с разбегу во @wraps
зачем оно?
Elvis 06.01.2011 19:39 #
Не знаю. Этот декоратор выдран c django-annoying со всем кодом и в том числе @wraps. Я изменил только импорт render_to_response.
Есть и намного лучше способ изменить декоратор django-annoying для работы с Jinja (способ подсмотрел в coffin), но не было времени. Поэтому просто copy-paste с изменением одной строчки.
razum2um 06.01.2011 19:17 #
мда и еще это..
ваше hsc-skel у меня упрямо читается как haskell
kstep 06.01.2011 23:48 #
Узнал из этого поста про Coffee-Script. Почитал — прифигел. Классная штука, сразу руки зачесались её пощупать.
Elvis 07.01.2011 08:59 #
Пробуйте!
Некоторые либы для Node.JS написаны на coffee-script. Мои коллеги и я сам полностью перешли на coffe-script. Этот язык вполне применим в продакшне и в нем излишней многословности и раздражающих скобочек, как в яваскрипте.
Denchik 07.01.2011 00:02 #
краткость синтаксиса выглядит красиво на главной странице , жаль JS я не знаю
Denchik 07.01.2011 00:20 #
А вы не могли бы что-то для совсем чайников написать по Djangо , типа быстрый старт на каком-то простом примере . Я учу по чуть-чуть , но не сильно понимаю как например грамотно в IDE работать , как html и js использовать ...

понимаю что вопрос обо всем и ни о чем , но все же ...
Elvis 07.01.2011 09:07 #
Для чайников и так много материала.
Я начинал с http://djbook.ru/
Потом основным спутником становится сайт http://docs.djangoproject.com/ (если не знаете английский, то учите, в программировании без английского делать нечего)
Если плохо знаете Python, прочитайте учебник от создателя языка - http://www.python.ru/files/book-ods.pdf , первые 2 части, 187 страниц. Стандартные функции Python'а следует знать назубок (генераторы списков, списковые выражения, магические функции и функции самого языка, такие как all, и пр.)
В качестве IDE однозначно PyCharm. Платная, но есть ознакомительный период в 30 дней.
Научитесь пользоваться virtualenvwrapper.project - облегчит жизнь.
И придумайте себе какой-нибудь "стартап" и начните воплощать его в жизнь, реализуя в нем свои идеи и новые полученные знания.
bosha 07.01.2011 09:54 #
Я бы не стал советовать PyCharm. Он такой, такой PyCharm в общем =)

Для vim'а есть всё необходимое для комфортного написания кода на django.
Elvis 07.01.2011 09:57 #
Я думаю что посоветовать "чайнику" Vim в качестве IDE - это очень плохая идея. Как и Emacs впрочем.
А PyCharm очень дружелюбный, в нем столько возможностей, сколько нет ни в одном другом редакторе!
bosha 07.01.2011 17:20 #
PyCharm может отбить всё желание писать код своей монстроузностью и глючностью. У меня во всяком случае так и было. Java же..
Elvis 07.01.2011 17:23 #
Все свои проекты я пишу в PyCharm.
Могу заверить, что он не монстроузный и совсем не глючный.
Не надо холиваров, какой редактор лучше, все они хорошие.
Но для новичка PyCharm лучше, чем Vim, и это не оспоришь.
bosha 07.01.2011 18:03 #
Не совсем правильно выразился. Скорее нужно минимум 2 ядра и 2 гига чтобы работа с PyCharm была комфортной.

Кстати о сложности. Vim не сложный, просто надо сесть и изучить его. Он элементарный. vimtutor в зубы и пошёл. Через полчаса уже можно вполне комфортно писать код. Его изучение не сложнее чем задачи которые человеку предстоит решать реализуя свои проекты.

lol2Fast4U 07.01.2011 20:19 #
Java == выглядит ужасно на всех платформах.
Для новичка лучше Textmate (Mac OS X) или gedit (Linux).
lol2Fast4U 07.01.2011 20:25 #
Чайник в питоне - не обязательно чайник вообще везде, может он на других языках программировал в Emacs.
lol2Fast4U 07.01.2011 20:24 #
Мой старый пост: http://blog.myfreeweb.ru/post/howto_write_django_blog_engine/ :-)

Конечно, плохо там я сделал с шаблонами (один для списка и страницы поста)... ну ладно, не это важно.
bosha 07.01.2011 09:58 #
Хмм. Спасибо за наводку на CoffeScript. Жаль раньше на него не наткнулся, сейчас уже знаком с jquery и не вижу надобности в изучение CoffeScript =)
Elvis 07.01.2011 10:00 #
Не смешивайте JQuery и coffee-script :) Одно другому не мешает.
Например:
$(document).ready () ->
alert('Hello, world!')
- это coffee-script испольщующий JQuery.
bosha 07.01.2011 17:20 #
Я не совсем то имел в виду. Просто jquery по сути итак обёртка над javascript (удобная должен сказать обёртка), а тут ещё одна..
lol2Fast4U 07.01.2011 20:16 #
Фреймворк и язык, компилирующийся в JavaScript - разные совсем вещи.
bosha 07.01.2011 21:42 #
Да блин. Я не о том. Проехали в общем.
nvbn 07.01.2011 17:22 #
Проще просто SASS прикрутить, а от coffee-script и haml больше вреда, чем пользы
Elvis 07.01.2011 17:24 #
Не согласен, что больше вреда чем пользы.
lol2Fast4U 07.01.2011 20:25 #
Какой вред от CoffeeScript? o_O
nvbn 09.01.2011 16:42 #
Если использовать нестандартные либы, то выльется в геморой, наверное)
lol2Fast4U 07.01.2011 20:15 #
Это я в webassets добавил CoffeeScript :-)
https://github.com/miracle2k/webassets/commit/66f1fdab4c6735396d031bba20342329e30984cb