Drupalista Djangoon

Liittynyt
20.04.2017
Viestejä
582
Moi

Olen nyt useamman vuoden hakannut Drupalia ja vaikka sillä muutama asia onkin onnistunut, niin en vain ymmärrä sitä (valitettavasti).
Harvoin se toimii ja silloinkin vain väliaikaisesti. Vaikuttaa usein siltä, että jonkinlainen välimuistiongelma siinä on, vaikka sitä kuinka yrittää tyhjentää.
Sama ilmiö 7 version alusta loppuun ja eri palvelimilla jne.

Nyttemmin olen tutustunut Djangoon ja vaikka se onkin kenties "vielä syvemmällä" eli lähempänä tietokantaa ja itse arkkitehtuurista ydintä, niin silti se vaikuttaa merkittävästi yksinkertaisemmalta.

Edelliseen viitaten, Djangossa ollaan jollain tapaa koko ajan lähempänä sitä oliota/entiteettiä tai muuta ohjelmiston osaa johon pyritään vaikuttamaan. Siinä ei eksytä loputtomien "koukkujen", usein melko harhaajohtavasti nimettyjen, viidakkoon.
Drupalin kanssa tuntuu, ettei oikein ikinä tiedä, että mitä missäkin vaiheessa tapahtuu tai mikä ajetaan, milloin, mitä muuttujia siellä kulkee jne.

Kukaan ei ole kuitenkaan seppä syntyessään ja olisinkin kaivannut hyviä vinkkejä Djangon suhteen. Sen oma dokumentaatio on toki hyvä, mutta ehkä haen pikemminkin hyvin dokumentoituja esimerkkejä kuin pelkkää "rajapinnan"/järjestelmän dokumentaatiota.

En tiedä, että minkälaisia nuo djangon paketit yleensä ovat eli onko niissä useinkaan dokumentaatiota.
Toisekseen, esim. Drupalille on ihan oma moduuli, jossa on useita esimerkkejä ja kenties vastaava voisi löytyä Djangollekin.
 
Django on web-sivujen ja -sovellusten tekemiseen tarkoitettu Python-kielinen framework (relaatiotietokanta-ORM, migraatiot, näkymät, admin-paneeli, router, jne.) ja Drupal on enemmän sisällönhallintajärjestelmä. Kannattaa varmaan Youtubesta katsoa parit tutoriaalit jotta saat hello worldin toimimaan ja tehtyä pienen crud-sovelluksen tietokantoineen. Postgres-kanta varmaan luonnollisin. Djangostahan tuli 2.0 versio hiljattain jossa routteriin ei enää tarvitse kirjoittaa regexiä joka vähän helpottaa. Kannattaa käyttää Python 3.6 versiota, jotta saat esim. f-stringit käyttöösi. Mites sun Python-osaaminen? Jos siinäkin lähdetään nollista niin aika paljon opittavaa :)
 
Viimeksi muokattu:
Jos sulla Drupalissa hajoilee omat moduulisi, niin vika on sun koodissasi. Drupal 7 varsinkin on niin pitkälle kehitetty jo tässä vaiheessa, ettei siinä ole kuin muutama tietty gotcha, jotka selviävät vaikka bugitrackerista.

Drupal on päivittynyt jo pari vuotta sitten versioon kahdeksan ja sen arkkitehtuuri on mielestäni paljon selkeämpi – osin siitä syystä, että Drupalkin on siirtynyt oliomalliin.
 
Kuten aloituksessa totesin, niin 7:lla olen vääntänyt pitkään. Toki ymmärrän, että jos oma moduuli kaatuu, niin omassa koodissa vika.
Joku ihmeen epävakaus haittaa usein tekemistä ja osasyynä on varmaan moduulien vapaus, kun niille ei ole kriteerejä.

Ja onhan Drupalissa muutamia keskeisiä moduuleja, joilla saa jo monenlaista aikaan, mutta jos vertaan esim. moduulin tekoa Drupal 8 vaastavaan ratkaisuun Djangossa, niin mielestäni Django vaikuttaa merkittävästi selkeämmältä. Molemmissa on myös ovat konffaukset tässä tilanteessa, mutta sinäkin Django vaikuttaa "loogisemmalta".
Voihan olla, etten ole antanut D8 aikaa riittävästi, mutta oppimiskäytä vaikuttaa heti alussa niin jyrkältä ja en ole kenties siitäkään syystä ryhtynyt siihen.

Regexithän ovat helppoja? Toki, urleja voi määritellä "helpomminkin", kuten Drupalin menu koukulla.
Regexit mahdollistavat kenties enemmän ja ovat rakenteellisesti erilaisessa kohdassa Drupaliin nähden.

Siirtyminen PHP:stä Pythoniin ei ole ainakaan toistaiseksi vaikuttanut mitenkään luonnottomalta. Tästä syystä olen Djangoa harkinnutkin ja jonkin verran piessyt pikkuskriptejä eli pari hassua kirjastoa on tullut tutuksi. Ei mulla siis mitään kattavaa kuvaa ole, mutta mitä nyt olen tuota Djangolla tekemistä katellut, niin jotenkin siinä ollaan vaan paljon välittömämmin kiinni siinä käsiteltävässä asiassa/kohteessa kuin vaikkapa Drupalilla.
 
...
Kukaan ei ole kuitenkaan seppä syntyessään ja olisinkin kaivannut hyviä vinkkejä Djangon suhteen. Sen oma dokumentaatio on toki hyvä, mutta ehkä haen pikemminkin hyvin dokumentoituja esimerkkejä kuin pelkkää "rajapinnan"/järjestelmän dokumentaatiota.
...

Itse pidin Mozilla Developer Networkin Django Web Framework (Python) opasta paljon selkeämpänä aloittelijalle kuin Djangon omaa dokumentaatiota. Siinä rakennetaan oma web sovellus joka pitää kirjaa kirjaston kirjoista ja niiden tilanteesta.

Toinen lupaavan oloinen opas, johon on tarkoitus tutustua tuon MDN oppaan suorittamisen jälkeen on Django for Beginners. Siinä rakennetaan useampia web sovelluksia, hello worldistä omaan blogiin käyttäjien rekisteröitymisellä, myös esimerkiksi python virtual environmentit ja git tulevat tutuksi. Nopealla selailulla näyttää siltä että suottaapi olla vielä selkeämpi kuin MDN opas, olisi varmaan pitänyt aloittaa tästä MDN sijaan.

Molemmissa oppaissa käytössä Django 2.0 ja Python 3.6
 
Nyt olen vilkuillut tuota Drupal 8 ja se on toki muuttunut rajusti.
Erityisesti commerce on muuttunut ja vaikuttaa paremmin dokumentoidulta.

Drupalin ekosysteemi lienee kattavampi ja nykyään myös lähempänä Djangon kaltaista frameworkia.
Melkein siis sama kummalla lähtee tekemään, niin pitää opetella aika paljon.

Vaikeaa on, kun ei osaa kunnolla :D
 
Drupalin onni on lukuisat tietoturvaprobleemat. Vasta kaksi viikoa siten huomasin että joku ajeli crypto-raha-louhintaa eräällä koneella jossa en itse ole ylläpitäjän suoraan. No tutkin asiaa hetken, ja näytti siltä että joku taho oli asentanut www-data -käyttäjän alle crontabin jossa pidettiin pystyssä louhintaprosessia. Vaikuttaa siltä että eivät tehneet mitään sen pahempaa kuin vain louhintasoftan pystytyksen, mutta kun ei voi olla varma. Eli palvelin meni uusiksi kertaheitolla. Tämä siis sen takia että Drupal 7:ssa oli pahemman luokan probleema inputin normalisoinnin kanssa. Djangossa näitä aivopieruja ei satu näköjään ollenkaan. Eli Drupal on oikeasti vaarallinen softa, varsinkin jossei ole oikeesti sisällä sen sielunelämässä.

Valitse siis Django. :)
 
Nyt, kun olen hieman saanut tuntumaan tuohon Djangoon, niin se on juuri sitä mitä kaipasin Drupalin kanssa.

Modeleja ts. entiteettejä on merkittävästi helpompi naittaa keskenään. Lomakkeiden teko on hieman vaikeampaa, mutta se on kenties toissijaista, kun koko sovellusta on helpompi kehittää ja tehdä sen rakenteesta yksinkertaisempi ilman 200 erillistä moduulia.
Tällöin myös on tuntuma siihen, että mitä siellä pellin alla oikeasti tapahtuu.

Yksi asia, joka kuitenkin vaivaa kaikkea avoimen lähdekoodin ratkaisuja, on esim. tutoriaalien ja dokumentaation ristiriidat.
Toki, paljon helpomaa olisi jos Pythonin/Djangon kehittämistä olisi seurannut jonkin aikaa, niin ymmärtäisi paremmin kenties vanhoja tutoriaaleja, joita noudattamalla ei nyt saa kuin lisää ongelmia.

Nyt ei tarttis enää kuin löytää hieman aikaa tekemiselle. Sitä ennen kuulisin mielelläni suosituksia Djangolle sopivista ostoskori-/verkkokaupparatkaisuista?
Tarve on alustavasti hyvin yksinkertainen ja tärkeintä olisi saada "erääntyvä" ostoskori, tilaustenhallinta ja verkkopankkimaksut.
 

Statistiikka

Viestiketjuista
261 839
Viestejä
4 548 821
Jäsenet
74 852
Uusin jäsen
eirich

Hinta.fi

Back
Ylös Bottom