FeinCMS - это, как очевидно из названия, система управления содержимым сайта на базе фреймверка Django. Очень простая и очень удобная с точки зрения разработчика Django. Не перегруженная "батарейками в комплекте". Здесь я приведу минимальные действия для использования приложения. На самом деле, возможностей у этой CMS куда больше.
Сразу стоит сказать о том, что установка этой CMS - не N кликов мышью и - заработало. Но за это вы получаете бОльшую расширяемость на уровне фреймверка.
Для работы вам необходим Python версии 2.6 и больше с установленными пакетами pip и virtualenv, ибо это правильно. Также вам потребуется библиотека PIL, которую лучше собирать из бинарников.
$ cd /path/to/devarea $ virtualenv --system-site-packages feincookie $ source feincookie/bin/activate
или, последняя строка для Windows:
feincookie\Scripts\activate
Так мы создали наше рабочее окружение, чтобы не мешать другим проектам. Для новичков хочу заметить, что это - очень важно! Разберитесь, пожалуйста, с virtualenv. Так вам будет проще жить в мире Python.
При использовании --system-site-packages питон будет использовать системные библиотеки вместо локальных. Это требуется для пользователей Windows, так как установка валидного PIL в окружение для них - задача не тривиальная и здесь мы её рассматривать не будем.
Теперь качаем Django и создаем проект для неё:
$ pip install Django==1.4 $ cd feincookie $ python bin/django-admin.py startproject feinpro
или, последняя строка для Windows:
python Scripts\django-admin.py startproject feinpro
Далее - устанавливаем еще пару пакетов:
$ pip install feincms $ pip install django-mptt==0.4
Проверяем, что все наши усилия не напрасны:
$ pip freeze --local Django==1.4 FeinCMS==1.7.4 django-mptt==0.4.0
Создаем нужную файловую структуру:
mkdir feinpro/static feinpro/media feinpro/templates
Далее - начинаем редактировать файлы django-проекта для интеграции с FeinCms. Вначале - feinpro/feinpro/settings.py. Добавляем имя файла для базы данных SQLite (вы, конечно можете определять другие настройки для себя):
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': '/path/to/devarea/feincookie/feinpro/feinpro.db', 'USER': '', 'PASSWORD': '', 'HOST': '', 'PORT': '', } }
Затем - добавляем настройки для локальной обработки медиа, статики и местоположения переопределенных шаблонов:
MEDIA_URL = '/media/' MEDIA_ROOT = '/path/to/devarea/feincookie/feinpro/media' STATIC_URL = '/static/' STATICFILES_DIRS = ( '/path/to/devarea/feincookie/feinpro/static', ) TEMPLATE_DIRS = ( '/path/to/devarea/feincookie/feinpro/templates', )
В переменной INSTALLED_APPS раскомментируем:
#... 'django.contrib.admin', 'django.contrib.admindocs', #...
и добавим:
#... 'feincms', 'feincms.module.page', 'feincms.module.medialibrary', 'feinpro', #...
Файл feinpro/feinpro/urls.py здесь приведу полностью, т.к. в нем больше изменений, чем нетронутых строк:
from django.conf.urls import patterns, include, url from django.contrib import admin from django.contrib.staticfiles.urls import staticfiles_urlpatterns from django.views.generic.simple import direct_to_template admin.autodiscover() urlpatterns = patterns('', url(r'^admin/doc/', include('django.contrib.admindocs.urls')), url(r'^admin/', include(admin.site.urls)), url(r'', include('feincms.urls')), ) # for static processing urlpatterns += staticfiles_urlpatterns() # for media processing (ONLY FOR DEVELOPE!) from django.conf import settings if settings.DEBUG: from django.conf.urls.static import static urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
На этом подготовка завершена. Осталось лишь определить модели данных. Добавляем файл feinpro/feinpro/models.py следующего содержания:
# -*- coding: utf-8 -*- from feincms.module.page.models import Page from feincms.content.raw.models import RawContent Page.register_extensions('navigation', 'seo', 'titles',) Page.register_templates({ 'title' : u'Стандартный шаблон', 'path' : 'base.html', 'regions' : ( ('content', u'Содержимое',), ), }) Page.create_content_type(RawContent)
Теперь создадим шаблон для наших страниц в feinpro/templates/base.html:
<!DOCTYPE html> <html> <head> <title>{{ feincms_page.title }}</title> <meta charset="utf-8"> </head> <body> {% for page in feincms_page.content.content %} {{ page.render }} {% endfor %} </body> </html>
На этом этапе мы уже имеем готовый минимальный проект на FeinCMS. Давайте запустим всю эту радость:
$ python feinpro\manage.py syncdb $ python feinpro\manage.py runserver
Открываем браузер и вводим 127.0.0.1:8000/admin, наш логин и пароль при создании таблиц базы данных и видим админку, в которой появились два приложения, коих нет в коробке Django: medialibrary (для работы с загружаемыми пользователями файлами) и page (наши страницы). Попробуйте добавить страницу, а затем перейти по URL, указанном при создании этой страницы. Всё должно работать. Если что-то не работает или работает не так, проверьте еще раз все шаги или начните заново. Повторение - мать учения.
Комментариев нет:
Отправить комментарий