Blogas su Django jau viešas!

5 min. skaitymo

Vos prieš mėnesį nusprendžiau prisėsti prie Django ir suprogramuoti ką nors naudingo. Bent jau sau. Kilo šauni idėja – 7 kartą nuo 0 perrašyti savo blog’ą ant kitos programavimo kalbos (ne PHP). Na, šauni gal tik iš dalies, nes jeigu iš tikro, tai blogą turbūt dažniau perrašinėju, negu jį rašau (bet stengiuosi pasitaisyti).

Kodėl Django? Nes užteko vos 1 savaitės įvairių bandymų ir testavimo, kad šis framework mane sužavėtų. O kas konkrečiai patiko/nepatiko tai papasakosiu plačiau.

Django framework logotipas

Programavimo greitis – neįtikėtinas! Dėl nepriekaištingos dokumentacijos labai lengva programuoti (ech, gaila apie CakePHP negalima to pasakyti, nes šiuo metu ypatingai daug tenka su juo programuoti). Vos kelios eilutės kodo ir jau gali pamatyti ant Django savo testinį puslapį. Aišku ir su bet kuriais PHP framework’ais galimas tas pats rezultatas: teks pirmiausia susikonfigūruoti viską, sukurti kontrolerį, modelį, views’ą ir puslapis jau rodomas!

Nerealus dalykas yra tai, kad nereikia visiškai konfigūruoti Apache (nereikia iš vis jo turėti!). Tiesiog paleidai komandą:

python manage.py runserver

Ir puslapis jau pasiekiamas! Tiesa, lokaliai, adresu localhost:8000… Norint padaryti jį viešą, prie Apache konfigūracijos teks prisėsti. Bet tikrai su mažesniu skausmu viską sukonfigūruosit, nei tą darytumėt su PHP. Tiesiog visokio šlamšto nereikia instaliuoti, kad paleisti Django tinklapį.

Na, o dabar jeigu kalbant apie duomenų bazes, tai… Django sukurtas duomenų bazėms! Kadangi duomenų bazės struktūra aprašoma modeliuose, tai galima per kelias minutes migruoti prie kitos duomenų bazės tipo: Postgesql, Sqlite3, Mysql ir t.t. Su kuriuo PHP framework tai įmanoma? Nei su CakePHP, nei su Code Igniter, nei Kohana… Užtenka pakeisti naudojamos duomenų bazės tipą settings.py faile ir paleisti komandą:

python manage.py syncdb

Ir Jūs jau migravote!

Scaffolding’as – taip vadinimas duomenų bazės automatinis valdymas. Šiuo atveju, Django automatiškai iš modelių sukuria scaffolding’o puslapius administracijoje. Taip pat galima praplėsti pačią administraciją, jeigu to tikrai reikia. Nors man, realiai, dar to neprireikė. Manau tik kol kas :)

Bet… Labai stipriai nusivyliau, kad Lighttpd + Django = nesuderinamumas. Nors ir oficialioje dokumentacijoje aprašyta kaip ir ką naudoti, tačiau tokie trys aprašyti sprendimai – baisu! Tiesiog daug problemų suderinant. Jeigu viską daryti su Apache, tai per kelias minutes galima paleisti ilgai gyvuosiantį Django puslapį. Su Lighttpd dar kol kas sprendimų ieškau, soketai – nėra geras srendimo būdas (jį siūlo Django kūrėjai).

Na, o dabar grįžtant prie straipsnio pavadinimo, tai mano repozitoriją galite rasti GitHub.com puslapyje nuspaudę čia. Darbas yra su GPL licensija, tai reiškia, kad galite modifikuoti kiek tinkami, tik palikite mano pavardę autorių sąraše :)

Projektą taip pat galite klonuoti pasinaudoję GIT versijavimo sistema:

git clone git://github.com/ReekenX/ReekenX-Django-blog.git blog

Jeigu įdomu kiek šiuo metu yra padaryta, tai čia trumpas sąrašas:

Puslapiai su meta žymėmis ir slug. Puslapių kategorijos. Nuorodos su kategorijomis. Paprasta tiketų valdymo sistema TODO įrašams saugoti. RSS kanalas. Komentarai. Sitemap (puslapio žemėlapis). UnitTest’ai.

Turiu numatęs krūvą ateities planų prie šio projekto. Jeigu kas prisijungsit, būsiu dėkingas.

Palikti komentarą