admin / 27.01.2018
Содержание
Дата публикации:29 апреля 2013 г. 1:33:17
Снова здравствуйте! В этой части урока по созданию своей CMS с помощью Django мы сделаем:
Итак, начнем. Для начала создадим файл urls.py в каталоге app и добавим в него несколько строк кода.
Файл urls.py
Комментарии излишни, но все же я их добавил. Дальше поработаем с файлом views в каталоге app.
Файл views.py
Итак, здесь мы обращаемся к стандартной форме авторизации Django, а также, подключаем свою для регистрации и изменения профиля. Идем дальше. Теперь нужно создать форму регистрации. Создаем файл forms.py в папке app.
Файл forms.py
Далее, нам нужно создать шаблоны. Здесь, я думаю вы сами разберетесь. Теперь, создадим файл admin.py в каталоге pages.
Файл admin.py
Я думаю, пояснять его не нужно. Если он вызывает у вас вопросы, то вам лучше сходить почитать документацию по Django. Теперь создадим файл utils.py в том же каталоге, который будет возвращать урл страницы с учетом всех родителей.
Файл utils.py
Здесь представлена рекурсивная функция. Эта функция будет вызываться из метода get_absolute_url в классе Page. Идем дальше, осталось совсем чуть-чуть. Теперь создадим файл views.py в каталоге pages.
Файл views.py
Немного поясню про path. Поскольку, урл у нас может быть довольно длинным(здесь зависит от количества родителей страницы), мы убираем из начала и конца символ / и с помощью функции split формируем список, который будет содержать каждого родителя и сам slug страницы. Дальше, поскольку у нас всегда должны быть уникальными slug родителя и slug самой страницы — их мы и отдаем по ключам -1 и -2.
Пока все. Третья часть опишет шаблонные теги и шаблоны. Спасибо за внимание!
Метки:django, cms, система управления, python
Django-CMS — это система управления контентом, написанная на Python, с использованием фреймворка Django. Она гибкая, настраиваемая, для неё создано много модулей. Помимо этого можно добавлять свои модули.
«` bash Запустите в шеле следующие комманды sudo aptitude install python2.6 python-setuptools python-imaging sudo easy_install pip sudo pip install django==1.3.1 django-cms south django-admin.py startproject mycmsproject cd mycmsproject rm settings.py rm urls.py wget https://gist.github.com/raw/1125918/settings.py wget https://gist.github.com/raw/1125918/urls.py mkdir templates cd templates wget https://gist.github.com/raw/1125918/example.html cd ..
python manage.py syncdb —all python manage.py migrate —fake python manage.py runserver
Часто требуется повторение элементов с главной страницы на всех страницах Для этого нужно в расширенных свойствах страницы указать id страницы (к примеру) И написать что-то вроде этого: {\% show_placeholder «teaser_right_bottom» «index» \%}
Эти новости хорошие, только подправить navigation.py
Дальше кастомизировать шаблоны, предварительно скопировав их в папку templates проекта. Возможно вся кастомизация будет заключаться в прописвании {\% extends «base.html» \%} в начало каждого шаблона новостей.
Ещё для использования sqlite
Для моего проекта используются следующие модули, сделано командой pip freeze:
Если есть уже работающий на сервере проект, а его нужно запустить локально, то создаем виртуальную питоновскую среду, и кропотливо устанавливаем все зависимости. Иначе выйдет боком.
Я скачиваю с гитхаб zip архив bootstrap. Затем кладу в папку статических файлов папки из master-bootstrap: img, js, less
В папке less создаю файл style.less примерно такого содержания:
Дальше компилирую его командой, то как это настраивается можно почитать тут. И соответственно в шаблоне уже ссылаемся на новый style.css
Ещё с главной страницы bootstrap качаем скомпилированный bootstrap.zip, копируем файлы в соответствующие папки
.
Создание сайтов
Давайте ответим сразу и честно: всё зависит от той задачи, которую ставит перед собой каждый конкретный WEB-мастер. Для начинающих мастеров и реализации не самых сложных задач будет вполне достаточно обычных CMS «из коробки». В конце концов, люди умудряются делать интернет-магазины на WordPress и Joomla, а сайты – в конструкторах.
И всё это как-то работает. Только вот ключевое слово здесь: «как-то». Старенькие «Жигули» тоже «как-то» ездят, перевозя груз и пассажиров. Но при наличии новенького «Мерседеса» выбор обязательно будет сделан в пользу последнего.
Что такое Django и при каких условиях он будет эффективен?
Для тех, кто не знает – это очень мощный, современный фреймворк, написанный с помощью языкаPython. Но вся его мощь может оказаться ненужной, если программист напишет низкопробный код. Как же использовать фреймворк правильно? Для этого следует использовать Django так, чтобы наш код был:
На практике это означает:
1. Связный код – выполняет одну-единственную функцию, или метод. Ещё раз: он делает только что-то одно, но на отлично.
2. Тестируемый – напрямую зависит от п.1 – код должен быть предельно прост для тестирования. Если же кусок кода сложен для написания теста, или программисту кажется: «это не стоит таких усилий» – значит, следует вернуться немного назад и заняться упрощением кода, чтобы в нём легко можно было найти проблемные места.
3. Масштабируемость. А это на практике означает, что ваш код настолько хорош, что в нём с лёгкостью разберётся другой специалист. И не только поймёт, но и без проблем внесёт в него свои правки, дополнения, адаптировав к другой, или видоизменённой задаче.
Так почему Django, а не обычные системы управления контентом?
Поясним: все сторонние расширения разрабатываются разными командами, или отдельными людьми. Отсюда и лишний код, и конфликты скриптов между собой. Чтобы разобраться с ними, порой приходиться долго искать по-настоящему хорошего специалиста.
В отличие от обычных систем управления контентом, разработчик на Django создаёт сайт «с чистого листа», максимально точно соответствуя требованиям будущего проекта. У квалифицированного программиста просто не может быть лишнего кода, если он следует 3-м правилам эффективности, описанным выше.
Помимо этого, у Django есть определённые правила и нормы разработки, а значит, любой специалист легко разберётся в том, что было написано до него, потому что заведомо понимает где и что должно быть расположено и как именно функционировать.
Сугубо индивидуально, ничего лишнего. Если взять для сравнения сайт, сделанный на Joomla, то его админка может повредить разум неподготовленного человека, настолько там всё сложно и непривычно.
Компания Номакс также находится в первых рядах среди лучших разработчиков, используя наиболее современные методы, в том числе и фреймворк Django. Посмотреть примеры наших работ и убедиться в профессионализме можно здесь https://nomax.com.ua/portfolio/
FILED UNDER : IT