Wagtail CMS - instalare


 11 Dec, 2015  doru  412  
django python wagtail cms sac

Dacă, pentru crearea unui website, vrei să folosești un Sistem de administrare a conținutului (SAC) făcut în Python, ai la dispoziție mai multe variante: DjangoCMS, FeinCMS, Mezzanine, Plone, Oscar (optimizat pentru magazine online și comerț electronic) și Wagtail.

Wagtail (tradus - Codobatură) este cel mai nou dintre ele, dar se bucură deja de multă atenție în comunitatea web pythonică: depozitul cu codul sursă al acestui SAC de pe GitHub are peste 3000 de stele apreciere, peste 500 de ramificări (forks) și peste 100 de contribuitori. De curând a fost lansată ultima variantă: 1.2. Caracteristica dominantă a acestei lansări este introducerea suportului deplin pentru motorul de șablonare HTML (template engine) Jinja2.

Nu pot trece la subiectul propriu-zis al acestui articol - și anume, instalarea SAC-ului Wagtail - fără să menționez o trăsătură distinctivă și unică a acestuia, pe scurt - Streamfield. La ce se referă acesta? La modul cum este introdus conținutul pe sait de către editorii de conținut. Dacă toate celelalte SAC-uri folosesc mai mult sau mai puțin un editor de text WYSIWYG (what you see is what you get), Wagtail vine cu un concept și o modalitate noi de introducere a conținutului: Streamfield-ul. Acesta permite editarea complet particularizată și cu ușurință a fiecărui bloc de conținut pe care - de asemenea - tu îl definești în prealabil: de ex. bloc carrousel, bloc conținut, bloc imagine, bloc intro, bloc legături înrudite (related links) și orice alt bloc (chiar și postări twitter) pe care-l definești pentru pagina respectivă. O scurtă ilustrare a folosirii Streamfield-ului este în videoclipul de aici.

Acum că ești familiarizat cu Wagtail să trecem la instalarea acestuia (în Ubuntu 15.10 aici, dar la fel trebuie procedat și în Windows sau Mac).

  1. Eu o să folosesc un mediu virtual python creat cu pyvenv și virtualenvwrapper (dacă nu știi despre ce e vorba poți să folosești direct python-ul instalat global pe calculator. Eu voi folosi Python 3.4). Dacă nu folosești un mediu virtual de dezvoltare python poți trece direct la pasul 2. Voi crea o instalare virtuală a python-ului folosind comanda (în shell-ul bash):
    mkvirtualenv doru_rocod
    Am acum un interpretor python separat de cel global de pe calculator și pe care-l voi folosi numai pentru acest proiect. Această comandă îl și activează automat (lucru care se vede în terminalul bash prin faptul că promptul începe cu (doru_rocod).
  2. În acest python voi instala folosind pip pachetul wagtail:
    pip install wagtail
  3. Wagtail, pentru a procesa imaginile, folosește biblioteca python Pillow, iar acesta, pentru a funcționa corect are nevoie de dependințele libjpeg și zlib pe care le voi instala acum:
    sudo apt-get install libjpeg-dev zlib1g-dev
  4. Trebuie acum reinstalat Pillow:
    pip install Pillow
  5. De asemenea trebuie instalat six:
    pip install six
  6. și django-appconf:
    pip install django-appconf

Avem Wagtail instalat! Ce ne rămâne de făcut este să creăm noul nostru proiect. Pentru asta navigăm în terminal în folderul unde vrem să fie creat directorul ce va conține saitul nostru și acolo executăm comanda:

wagtail start mysite

unde mysite este numele proiectului meu. După executare această comandă va crea structura de foldere și fișiere descrisă aici. Navigăm în terminal în interiorul proiectului mysite și acolo trebuie să fie fișierul manage.py, executăm aici:

python manage.py migrate

și dacă totul decurge fără erori creăm un superuser (adica admin)

python manage.py createsuperuser

completăm ce ni se cere: un nume de admin cu adresă de email și parolă pentru acest admin (putem pune orice întrucât nu suntem în producție și acestea pot fi schimbate când va fi nevoie).

Pentru a vedea cum arată saitul nostru proaspăt creat pornim serverul de dezvoltare:

python manage.py runserver

și acum navigăm în browser la adresa:

localhost:8000

si - pagina noastră "Acasă" va arăta cam așa.

Și dacă navigăm la

http://localhost:8000/admin

vom avea acces ala partea administrativă a saitului nostru care arată (super!) cam asa.

În postări viitoare voi descrie pe larg cum se face un site folosind Wagtail (pentru că deși unele lucruri se fac din panoul de administrare - ca la orice CMS - părțile esențiale sunt efectiv codate de cel care face saitul - spre deosebire de alte CMS-uri, unde totul se face în panoul de administrare fără a scrie vreun rând de cod).

Acestea fiind scrise, merry (ro)code with Wagtail!