Wagtail CMS - instalare
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).
- Eu o să folosesc un mediu virtual python creat cu
pyvenv
șivirtualenvwrapper
(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). - În acest python voi instala folosind
pip
pachetul wagtail:pip install wagtail
- Wagtail, pentru a procesa imaginile, folosește biblioteca python
Pillow
, iar acesta, pentru a funcționa corect are nevoie de dependințelelibjpeg
șizlib
pe care le voi instala acum:sudo apt-get install libjpeg-dev zlib1g-dev
- Trebuie acum reinstalat
Pillow
:pip install Pillow
- De asemenea trebuie instalat
six
:pip install six
- ș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!