Django projekto šablonas

Gan ilgą laiką vis ieškau geriausio Django projekto architektūros sprendimo. Šiuo metu turimą galutinį variantą vertinu gan teigiamai, todėl nusprendžiau jį paskelbti viešai taikant BSD licenciją.

Tuščią Django projekto šabloną, su apgalvotu architektūriniu sprendimu rasite čia:

https://bitbucket.org/sirex/django-starter/src

Trumpai apžvelgsiu projekto struktūrą:

project/

Tai pagrindinis projekto katalogas, tačiau jame negalima saugoti jokios logikos, visa logika turi keliauti į apps/ katalogą.

Šiame projekto kataloge turi būti saugoma tik bendroji projekto informacija: konfigūracija, įdiegti moduliai, adresacija, projekto šablonai ir kiti išvaizdos elementai būdingi konkrečiai daromam projektui.

apps/

Katalogas, kuriame saugomi visi projekte naudojami paketai. Mintis yra ta, kad visi paketai turėtų būti maksimaliai pernaudojami ir be didesnio vargo naudojami bet kuriame kitame projekte.

Net jei rašote kodą, skirtą konkrečiai šiam vienam projektui, tai tą kodą reikėtų rašyti į projektui skirtą apps/ katalogą.

docs/
Pilnai paruošta darbui Sphinx dokumentavimo aplinka. Pagal nutylėjimą generuojama HTML dokumentacija, bet be jokių galite sugeneruoti PDF, LaTeX ir dar koklius 5 variantus.
Makefile
Priemonė palengvinanti gyvenimą.
buildout.cfg
zc.buildout kodo valdymo sistema, šiame faile valdomas visas projektas. Trumpai tariant, šio failo dėka, savo projektą, be didesnių sunkumų paleisite bet kuriame serveryje.
initial_data.json
Pradiniai duomenys, kuriais bus užpildyta duomenų bazė. Naudojant šiuos duomenis bus sukurtas admin naudotojas su slaptažodžiu admin.
LICENCE.txt
BSD licencija, tai reiškia, kad galite šį šabloną naudoti kur tik norite, tačiau kartu su kodu turi būti pateikiamas licencijos tekstas ir autoriaus vardas nurodytas licencijoje.

Tai tiek apie struktūrą, liko paminėti apie priemones palengvinančias gyvenimą, t.y. Makefile. Makefile turi tokias komandas:

make
Padaro viską ko reikia, tiesiog įveskite make ir viskas bus padaryta, kad galėtumėte dirbti.
make run
Paleidžiamas Django dev serveris.
make tags
Bus suindeksuotas visas kodas (aktualu tik exuberant-ctags naudotojams).
make test
Paleidžiami unit testai.
make syncdb
Išvaloma ir naujai perkuriama duomenų bazė.
make graph
Paišoma duomenų bazės schema.
make clean
Išvaloma viskas, kas nėra įtraukta į versijų kontrolės sistemą.
make app name=mynewapp
Priemonė, kurios pagalba bus sukurtas naujas paketas, jūsų nurodytu pavadinimu. Sukurtas paketas yra įdiegiamas Python egg paketas, tai reiškia, kad prireikus be jokių sunkumų galėsite atskirti paketą nuo savo projekto ir suteikti jį pernaudoti kitiems.

Šablone yra labai daug visokių dalykų, kurių neaprašiau, tiesiog skaitykit buildout.cfg failą ir pamatysite patys.

Sėkmės su Django, jei turėsit kokių pastebėjimų dėl šablono, būtinai rašykit.

Komentarai