Fealsúnacht dearadhLink to this heading
Míníonn an doiciméad seo cuid de na fealsúnachtaí bunúsacha a d'úsáid forbróirí Django chun an creat a chruthú. Is é an sprioc atá aige ná an t-am atá caite a mhíniú agus an todhchaí a threorú.
ForiomlánLink to this heading
Cúplála scaoilteLink to this heading
Sprioc bhunúsach de chruach Django is ea cúpláil scaoilte agus comhtháthú daingean. Níor cheart go mbeadh "eolas" ag sraitheanna éagsúla an chreata ar a chéile mura rud é go bhfuil géarghá leis.
Mar shampla, níl aon rud ar eolas ag an gcóras teimpléid faoi iarratais gréasáin, níl aon rud ar eolas ag ciseal an bhunachair shonraí faoi thaispeántas sonraí agus is cuma leis an gcóras amhairc cén córas teimpléid a úsáideann ríomhchláraitheoir.
Cé go dtagann Django le stack iomlán le haghaidh áise, tá píosaí an chruach neamhspleách ar cheann eile nuair is féidir.
Lúide códLink to this heading
Ba cheart go n-úsáidfeadh apps Django chomh beag cód agus is féidir; ba chóir go mbeadh easpa pláta coire orthu. Ba cheart do Django leas iomlán a bhaint as cumais dhinimiciúla Python, mar shampla introspection.
Forbairt tapaLink to this heading
Is é an pointe a bhaineann le creat gréasáin sa 21ú haois ná na gnéithe tedious d'fhorbairt gréasáin a dhéanamh go tapa. Ba cheart go gceadódh Django forbairt gréasáin thar a bheith gasta.
Ná déan athrá ort féin (TIRIM)Link to this heading
Ba cheart go mbeadh gach coincheap agus/nó píosa sonraí ar leith beo in aon áit amháin, agus in áit amháin. Is olc an iomarcaíocht. Tá normalú go maith.
Ba cheart don chreat, laistigh de chúis, an oiread agus is féidir a bhaint as a laghad agus is féidir.
Is fearr soiléir ná intuigtheLink to this heading
Is prionsabal lárnach Python é seo atá liostaithe i PEP 20, agus ciallaíonn sé nár cheart do Django an iomarca "draíochta." Níor cheart go dtarlódh draíocht mura bhfuil cúis mhaith leis. Is fiú draíocht a úsáid ach amháin má chruthaíonn sé áis ollmhór nach féidir a bhaint amach ar bhealaí eile, agus nach gcuirtear i bhfeidhm é ar bhealach a chuireann mearbhall ar fhorbróirí atá ag iarraidh a fháil amach conas an ghné a úsáid.
ComhsheasmhachtLink to this heading
Ba cheart go mbeadh an creat comhsheasmhach ar gach leibhéal. Baineann comhsheasmhacht le gach rud ó leibhéal íseal (an stíl códaithe Python a úsáidtear) go dtí ardleibhéal (an "taithí" ar Django a úsáid).
MúnlaíLink to this heading
Is fearr soiléir ná intuigtheLink to this heading
Níor cheart go nglacfadh réimsí le hiompraíochtaí áirithe bunaithe ar ainm na páirce amháin. Éilíonn sé seo an iomarca eolais ar an gcóras agus seans maith go mbeidh earráidí ann. Ina áit sin, ba cheart go mbeadh iompraíochtaí bunaithe ar argóintí eochairfhocail agus, i gcásanna áirithe, ar an gcineál réimse.
Cuir san áireamh gach loighic fearainn ábharthaLink to this heading
Ba chóir go gcuimseodh samhlacha gach gné de "réad," ag leanúint patrún dearaidh Taifead Gníomhach Martin Fowler.
Sin é an fáth a sainmhínítear na sonraí arna léiriú ag samhail agus faisnéis faoi (a hainm inléite ag an duine, roghanna mar ordú réamhshocraithe, etc.) san aicme mhúnla; ba chóir an fhaisnéis go léir a theastaíonn chun mionsamhail ar leith a thuiscint a stóráil *sa mhionsamhail.
Bunachar Sonraí APILink to this heading
Is iad príomhspriocanna an API bunachar sonraí:
Éifeachtúlacht SQLLink to this heading
Ba cheart dó ráitis SQL a fhorghníomhú chomh beag agus is féidir, agus ba cheart dó ráitis a bharrfheabhsú go hinmheánach.
Sin é an fáth gur gá d'fhorbróirí save() a ghlaoch go sainráite, seachas an creat a shábháil rudaí taobh thiar de na radhairc go ciúin.
Sin é an fáth freisin go bhfuil an modh select_related()```QuerySet ann. Is teanndáileog feidhmíochta roghnach é don chás coitianta "gach rud gaolmhar" a roghnú.
Terse, comhréir chumhachtachLink to this heading
Ba cheart go gceadódh API an bhunachair sonraí ráitis shaibhre léiritheacha chomh beag comhréire agus is féidir. Níor cheart go mbeadh sé ag brath ar mhodúil eile nó ar rudaí cabhrach a allmhairiú.
Ba chóir siúntaí a dhéanamh go huathoibríoch, taobh thiar de na radhairc, nuair is gá.
Ba cheart go mbeadh gach réad in ann rochtain a fháil ar gach réad gaolmhar, ar fud an chórais. Ba cheart go n-oibreodh an rochtain seo ar an dá bhealach.
Rogha chun titim isteach i SQL amh go héasca, nuair is gáLink to this heading
Ba cheart go n-aithneodh API an bhunachair sonraí gur aicearra é ach ní gá gur rud deireadh é. Ba cheart go n-éascódh an creat ráitis shaincheaptha SQL -- ráitis iomlána a scríobh, nó clásail saincheaptha `` WHERE`` mar pharaiméadair saincheaptha do ghlaonna API.
Dearadh URLLink to this heading
Cúplála scaoilteLink to this heading
Níor cheart URLanna in aip Django a chúpláil leis an mbunchód Python. Rud Droch agus Gránna is ea URLanna a cheangal le hainmneacha feidhm Python.
Mar an gcéanna, ba cheart go gceadódh córas URL Django URLanna don app céanna a bheith difriúil i gcomhthéacsanna éagsúla. Mar shampla, féadfaidh suíomh amháin scéalta a chur ag /scéalta/, agus féadfaidh suíomh eile /nuacht/ a úsáid.
Solúbthacht gan teorainnLink to this heading
Ba cheart go mbeadh URLanna chomh solúbtha agus is féidir. Ba cheart aon dearadh URL infhaighte a cheadú.
Spreag na cleachtais is fearrLink to this heading
Ba cheart go ndéanfadh an creat é chomh héasca (nó níos fusa fós) d’fhorbróir URLanna áille a dhearadh ná na cinn ghránna.
Ba cheart síntí comhaid i URLanna leathanaigh ghréasáin a sheachaint.
Tá pionós trom tuillte ag camóga ar nós vignette i URLanna.
URLanna cinntitheachaLink to this heading
Go teicniúil, is dhá URL dhifriúla iad `` foo.com/bar`` agus `` foo.com/bar/``, agus déileálfadh róbait inneall cuardaigh (agus roinnt uirlisí anailíse tráchta gréasáin) leo mar leathanaigh ar leith. Ba cheart do Django iarracht a dhéanamh URLanna a "normalú" ionas nach gcuirfí mearbhall ar róbait inneall cuardaigh.
Seo é an réasúnaíocht taobh thiar den socrú APPEND_SLASH.
Córas teimpléadLink to this heading
Loighic a scaradh ón gcur i láthairLink to this heading
Feicimid córas teimpléid mar uirlis a rialaíonn cur i láthair agus loighic a bhaineann le cur i láthair -- agus sin é. Níor cheart go dtacódh an córas teimpléad le feidhmiúlacht a théann thar an mbunsprioc seo.
Díspreagadh iomarcaíochtLink to this heading
Úsáideann formhór na suíomhanna gréasáin dinimiciúla dearadh comónta ar fud an tsuímh de shaghas éigin - ceanntásc coiteann, buntásc, barra nascleanúna, etc. Ba cheart go n-éascódh córas teimpléid Django na heilimintí sin a stóráil in aon áit amháin, rud a chuirfeadh deireadh le cód dúblach.
Seo í an fhealsúnacht taobh thiar de :tag:`oidhreacht teimpléad <template-inheritance>`.
Déan é a dhíchúpláil ó HTMLLink to this heading
Níor cheart an córas teimpléid a dhearadh sa chaoi is nach n-aschuireann sé ach HTML. Ba cheart go mbeadh sé chomh maith céanna ag cruthú formáidí téacs-bhunaithe eile, nó gnáth-théacs amháin.
Níor cheart XML a úsáid le haghaidh teangacha teimpléidLink to this heading
Trí inneall XML a úsáid chun teimpléid a pharsáil, tugtar isteach domhan iomlán nua earráide daonna in eagarthóireacht teimpléid -- agus tabhaítear leibhéal do-ghlactha forchostais i bpróiseáil teimpléad.
Glac leis inniúlacht dearthóirLink to this heading
Níor cheart an córas teimpléid a dhearadh sa chaoi is go dtaispeánfar teimpléid go deas in eagarthóirí WYSIWYG ar nós Dreamweaver. Is teorannú ró-dhian é sin agus ní ligfeadh sé don chomhréir a bheith chomh deas agus atá sé. Tá Django ag súil go mbeidh údair teimpléid compordach ag eagarthóireacht HTML go díreach.
Caitheamh spás bán ar ndóighLink to this heading
Níor cheart don chóras teimpléad rudaí draíochta a dhéanamh le spás bán. Má tá spás bán i dteimpléad, ba cheart go gcaithfeadh an córas leis an spás bán mar a dhéileálann sé le téacs -- ní gá ach é a thaispeáint. Ba cheart spás bán ar bith nach bhfuil i gclib teimpléad a thaispeáint.
Ná ceapadh teanga ríomhchlárúcháinLink to this heading
Ní hé an sprioc teanga ríomhchlárúcháin a chumadh. Is é an sprioc gan ach go leor feidhmiúlacht ríomhchlárúcháin a thairiscint, mar bhrainse agus lúbadh, atá riachtanach chun cinntí a bhaineann le cur i láthair a dhéanamh. Tá sé mar aidhm ag an Teanga Teimpléad Django (DTL) ard-loighic a sheachaint.
Sábháilteacht agus slándáilLink to this heading
Ba cheart go gcuirfeadh an córas teimpléad, as an mbosca, cosc ar chód mailíseach a áireamh -- mar orduithe a scriosann taifid bhunachar sonraí.
Is cúis eile é seo nach gceadaíonn an córas teimpléad cód treallach Python.
LeathnúLink to this heading
Ba cheart go n-aithneodh an córas teimpléad go mb’fhéidir gur mhaith le húdair ardteimpléid a dteicneolaíocht a leathnú.
Is é seo an fhealsúnacht taobh thiar de chlibeanna agus scagairí teimpléid saincheaptha.
RadhaircLink to this heading
SimplíochtLink to this heading
Ba chóir go mbeadh scríobh tuairim chomh simplí le feidhm Python a scríobh. Níor cheart go mbeadh ar fhorbróirí rang a chur ar an toirt nuair a dhéanfaidh feidhm.
Úsáid rudaí iarrataisLink to this heading
Ba cheart go mbeadh rochtain ag radhairc ar oibiacht iarratais -- réad a stórálann meiteashonraí faoin iarratas reatha. Ba cheart an réad a chur ar aghaidh go díreach chuig feidhm amhairc, seachas go mbeadh ar an bhfeidhm radhairc rochtain a fháil ar shonraí an iarratais ó athróg dhomhanda. Fágann sé seo go bhfuil sé éadrom, glan agus éasca le tuairimí a thástáil trí rudaí iarratais "falsa" a chur isteach.
Cúplála scaoilteLink to this heading
Níor cheart go mbeadh cuma ar an tuairim cén córas teimpléid a úsáideann an forbróir -- nó fiú an n-úsáidtear córas teimpléid ar chor ar bith.
Déan idirdhealú idir GET agus POSTLink to this heading
tá GET agus POST ar leith; ba cheart d'fhorbróirí ceann amháin nó an ceann eile a úsáid go sainráite. Ba cheart go n-éascódh an creat idirdhealú a dhéanamh idir sonraí GET agus POST.
Chreat CacheLink to this heading
Is iad príomhspriocanna Django's creat taisce:
Lúide códLink to this heading
A cache should be as fast as possible. Hence, all framework code surrounding
the cache backend should be kept to the absolute minimum, especially for
get() operations.
ComhsheasmhachtLink to this heading
Ba cheart go soláthródh an API taisce comhéadan comhsheasmhach thar na haiséilí éagsúla taisce.
LeathnúLink to this heading
Ba cheart go mbeadh an API taisce insínte ag leibhéal an fheidhmchláir bunaithe ar riachtanais an fhorbróra (mar shampla, féach : ref: cache_key_transformation).