FRÅGOR OCH SVAR: Allmänt¶
Varför finns det här projektet?¶
Django växte fram ur ett mycket praktiskt behov: World Online, en tidnings webbverksamhet, ansvarar för att bygga intensiva webbapplikationer på journalistiska deadlines. I det snabba tempot på nyhetsredaktionen har World Online ofta bara några timmar på sig att ta en komplicerad webbapplikation från koncept till offentlig lansering.
Samtidigt har World Onlines webbutvecklare alltid varit perfektionister när det gäller att följa bästa praxis för webbutveckling.
Hösten 2003 övergav World Online-utvecklarna (Adrian Holovaty och Simon Willison) PHP och började använda Python för att utveckla sina webbplatser. När de byggde intensiva, rikt interaktiva webbplatser som Lawrence.com, började de extrahera ett generiskt ramverk för webbutveckling som gjorde att de kunde bygga webbapplikationer allt snabbare. De finjusterade detta ramverk hela tiden och lade till förbättringar under två år.
Sommaren 2005 beslutade World Online att använda öppen källkod för den resulterande programvaran, Django. Django skulle inte vara möjligt utan en hel mängd projekt med öppen källkod - Apache, Python och PostgreSQL för att nämna några - och vi är glada över att kunna ge något tillbaka till open source-communityn.
Vad betyder ”Django” och hur uttalar man det?¶
Django är uppkallad efter Django Reinhardt, en jazzmanouche-gitarrist från 1930-talet till början av 1950-talet. Än idag anses han vara en av de bästa gitarristerna genom tiderna.
Lyssna på hans musik. Du kommer att gilla den.
Django uttalas JANG-oh. Rimmar med FANG-oh. ”D” är stumt.
Vi har också spelat in ett ljudklipp av uttalet.
Är Django stabilt?¶
Ja, det är ganska stabilt. Företag som Disqus, Instagram, Pinterest och Mozilla har använt Django i många år. Webbplatser som byggts på Django har klarat av trafiktoppar på över 50 000 träffar per sekund.
Är Django skalbart?¶
Ja, det är det. Jämfört med utvecklingstiden är hårdvara billigt, och Django är därför utformat för att dra nytta av så mycket hårdvara som möjligt.
Django använder en ”shared-nothing”-arkitektur, vilket innebär att du kan lägga till hårdvara på alla nivåer - databasservrar, cachningsservrar eller webb-/applikationsservrar.
Ramverket separerar komponenter som databaslager och applikationslager på ett snyggt sätt. Och det levereras med ett enkelt men ändå kraftfullt cache-ramverk.
Vem ligger bakom det här?¶
Django utvecklades ursprungligen på World Online, webbavdelningen på en tidning i Lawrence, Kansas, USA. Django drivs nu av ett internationellt ”team av frivilliga” <https://www.djangoproject.com/foundation/teams/>`_.
Hur är Django licensierat?¶
Django distribueras under :source:``the 3-clause BSD license <LICENSE>`. Detta är en öppen källkodslicens som ger breda rättigheter att modifiera och distribuera Django vidare.
Varför inkluderar Django Pythons licensfil?¶
Django innehåller kod från Pythons standardbibliotek. Python distribueras under en tillåtande licens för öppen källkod. En kopia av Python-licensen ingår i Django för att överensstämma med Pythons villkor.
Vilka webbplatser använder Django?¶
BuiltWithDjango.com innehåller en ständigt växande lista över Django-drivna webbplatser.
Django verkar vara ett MVC-ramverk, men ni kallar kontrollern för ”vy” och vyn för ”mall”. Hur kommer det sig att du inte använder standardnamnen?¶
Tja, standardnamnen är diskutabla.
I vår tolkning av MVC beskriver ”vyn” de data som presenteras för användaren. Det är inte nödvändigtvis hur data ser ut, utan vilken data som presenteras. Vyn beskriver vilken data du ser, inte hur du ser den. Det är en subtil distinktion.
I vårt fall är alltså en ”vy” Pythons återuppringningsfunktion för en viss URL, eftersom den återuppringningsfunktionen beskriver vilka data som presenteras.
Dessutom är det klokt att separera innehåll från presentation - och det är här mallar kommer in i bilden. I Django beskriver en ”vy” vilka data som presenteras, men en vy delegerar normalt till en mall, som beskriver hur data presenteras.
Var passar då ”controllern” in? I Djangos fall är det förmodligen själva ramverket: det maskineri som skickar en begäran till lämplig vy, enligt Djangos URL-konfiguration.
Om du är sugen på akronymer kan du säga att Django är ett ”MTV”-ramverk - det vill säga ”model”, ”template” och ”view” Den uppdelningen är mycket mer meningsfull.
I slutändan handlar det om att få saker gjorda. Och oavsett hur saker och ting benämns, får Django saker gjorda på ett sätt som är mest logiskt för oss.
<Framework X> gör <feature Y> – varför gör inte Django det?¶
Vi är väl medvetna om att det finns andra fantastiska webbramverk där ute, och vi är inte främmande för att låna idéer där det är lämpligt. Django utvecklades dock just för att vi var missnöjda med status quo, så var medveten om att ”för att <Framework X> gör det” inte kommer att vara tillräckligt skäl för att lägga till en viss funktion i Django.
Varför skrev du hela Django från grunden, istället för att använda andra Python-bibliotek?¶
När Django ursprungligen skrevs ägnade Adrian och Simon en hel del tid åt att utforska de olika Python-webbramverken som fanns tillgängliga.
Enligt vår mening var ingen av dem helt i toppklass.
Vi är kräsna. Du kanske till och med skulle kalla oss perfektionister. (Med deadlines.)
Med tiden snubblade vi över bibliotek med öppen källkod som gjorde saker som vi redan hade implementerat. Det var betryggande att se att andra människor löste liknande problem på liknande sätt, men det var för sent att integrera extern kod: Vi hade redan skrivit, testat och implementerat våra egna ramverksbitar i flera produktionsmiljöer - och vår egen kod uppfyllde våra behov på ett förträffligt sätt.
I de flesta fall upptäckte vi dock att befintliga ramverk/verktyg oundvikligen hade något slags grundläggande, ödesdigert fel som gjorde oss tveksamma. Inget verktyg passade våra filosofier till 100%.
Som vi sa: Vi är kräsna.
Vi har dokumenterat våra filosofier på sidan designfilosofier.
Är Django ett system för innehållshantering (CMS)?¶
Nej, Django är inte ett CMS eller någon slags ”nyckelfärdig produkt” i sig själv. Det är ett webbramverk; det är ett programmeringsverktyg som låter dig bygga webbplatser.
Det är till exempel inte särskilt meningsfullt att jämföra Django med något som Drupal, eftersom Django är något du använder för att skapa saker som Drupal.
Ja, Djangos automatiska administratörswebbplats är fantastisk och tidsbesparande - men administratörswebbplatsen är en modul av ramverket Django. Dessutom, även om Django har speciella bekvämligheter för att bygga ”CMS-y” -appar, betyder det inte att det inte är lika lämpligt för att bygga ”icke-CMS-y” -appar (vad det nu betyder!).
Hur kan jag ladda ner Django-dokumentationen för att läsa den offline?¶
Djangos dokument finns tillgängliga i katalogen docs
i varje Django tarball release. Dessa dokument är i reST-format (reStructuredText) och varje textfil motsvarar en webbsida på den officiella Django-webbplatsen.
Eftersom dokumentationen lagras i revisionskontroll kan du bläddra bland ändringar i dokumentationen på samma sätt som du kan bläddra bland ändringar i koden.
Tekniskt sett genereras dokumenten på Djangos webbplats från de senaste utvecklingsversionerna av dessa reST-dokument, så dokumenten på Djangos webbplats kan innehålla mer information än de dokument som följer med den senaste Django-versionen.
Hur citerar jag Django?¶
Det är svårt att ange ett officiellt citeringsformat, av två skäl: citeringsformaten kan variera kraftigt mellan olika publikationer, och citeringsstandarder för programvara är fortfarande föremål för viss debatt.
Till exempel, APA stil, skulle diktera något liknande:
Django (Version 1.5) [Computer Software]. (2013). Retrieved from https://www.djangoproject.com/.
Den enda sanna guiden är dock vad ditt förlag accepterar, så skaffa dig en kopia av dessa riktlinjer och fyll i luckorna så gott du kan.
Om din referensguide kräver ett namn på utgivaren, använd ”Django Software Foundation”.
Om du behöver en publiceringsplats använder du ”Lawrence, Kansas”.
Om du behöver en webbadress använder du https://www.djangoproject.com/.
Om du behöver ett namn, använd bara ”Django”, utan någon tagline.
Om du behöver ett publiceringsdatum använder du utgivningsåret för den version du refererar till (t.ex. 2013 för v1.5)
Var kan jag hitta fler Django-resurser?¶
Styrningsrådet upprätthåller en samling Django tredjepartspaket, organisationer och resurser på https://www.djangoproject.com/community/ecosystem/.
Den sidan kommer att uppdateras för att innehålla länkar till olika Django-innehåll som podcasts, videor, konferenser, bloggar, böcker och lärresurser. Den innehåller också populära, robusta, community-underhållna paket.