Pereiti prie turinio

Django templates


Rekomenduojami pranešimai

Sveiki,

 

reiktų šiek tiek pagalbos iš pažengusių programuotojų su django. Googlindamas pastebėjau, kad dauguma tutorialų templatus saugo appso folderyje, o ne pagrindiniame. Kodėl taip yra? O gal vienam tinklapiui užtenka vieno appso?

 

Tarkim turiu tinklapį, kuris turi naujienas ar kažką panašaus į blogą ir dar kažkokią atskirą skiltį, kurioje vartotojui teiksiu tam tikras paslaugas. Taigi, mano nuomone reiktų susikurti du appsus:

 

Naujienos - čia sukiščiau visus naujienų modelius (article, tags, meta info). Būtų atvaizduojamas example.com/ arba example.com/blog

 

Paslauga - čia sukiščiau visus modelius skirtus paslaugos appsui (pvz: serveris, nustatymai, koks nors paslaugos galiojimo laikas ir visi kiti šū.dai). Būtų atvaizduojama example.com/paslauga

 

Taigi, grįžtant į pradžią, mano projekte abu appsai turėtų generuoti vienodą tinklapio headerį ir footerį, o keistųsi tik vidurinė dalis (contentas). Tai kur reiktų saugoti templato folderį ir apskritai kaip jį struktūrizuoti, kad galėčiau per vieną failą redaguoti viso tinklapio headerį bei footerį?

 

Dėkui

Redagavo Fantasya
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Googlindamas pastebėjau, kad dauguma tutorialų templatus saugo appso folderyje, o ne pagrindiniame.

Nes kiekvienas apps'as gali turėti sau skirtų templeitų? Tuo labiau, jei kalbam apie platinamus apps'us, tai kitaip ir nepadarysi – į PyPI nekiši viso projekto, o tik appsą.

 

Iš esmės turėtum daryti taip:

 

templates/base.html

<header>
{% block header %}
default header
{% endblock %}
</header>
{% block main %}
default turinys
{% endblock main %}
<footer>
...

 

blog/templates/blog/index.html

{% extends "base.html" %}
{% block main %}
Blogo turinys
{% endblock %}
{% block header %}
blogo headeris woop woop
{% endblock %}

 

Esmę, manau, pagauni.

 

blog/templates/blog/index.html yra dėl to, kad visi templeitai logiškai django sumetami į vieną vietą pagal vardus, t.y. jei turėtum tiesiog blog/templates/index.html, tai jis galėtų susiclash'inti su kitu, tarkim paslauga/templates/index.html. Todėl beveik visada daromas dar vienas lygis su app vardu :)

 

Jei dar kokių neaiškumų bus, tai kiek vėliau galėsiu paaiškinti plačiau.

Redagavo Silke
Nuoroda į pranešimą
Dalintis kituose puslapiuose

o sakykit

eilute

{% extends "../base.html" %}

seniau tiko dabar ne , kaip rektu rasyti

Pilną kelią turbūt :) Šiuo atveju turbūt yra kažkas tokio:

templates/base.html
templates/a/child.html

Tai reiktų rašyti tiesiog "base.html".

 

Kaip minėjau praeitame poste, visi templeitai iš esmės sumetami į vieną erdvę ir neturi supratimo, iš kur atėjo (tik pradedant failais ir direktorijomis tos, iš kurios renkama).

Redagavo Silke
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Pilną kelią turbūt :) Šiuo atveju turbūt yra kažkas tokio:

templates/base.html
templates/a/child.html

Tai reiktų rašyti tiesiog "base.html".

 

Kaip minėjau praeitame poste, visi templeitai iš esmės sumetami į vieną erdvę ir neturi supratimo, iš kur atėjo (tik pradedant failais ir direktorijomis tos, iš kurios renkama).

Ačiū, žiurėsim

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...