Er zijn nogal wat geweldige kleine trucjes en tips die je zou kunnen gebruiken voor hun Django-projecten die de ontwikkeling zouden versnellen en op de lange termijn veel hoofdpijn zouden kunnen besparen. Van basis tot obscuur, deze tips kunnen elk niveau van programmeur helpen om vaardiger te worden met Django en al zijn glorie.
Django is een uitstekend kader voor Python. Hoewel het misschien niet zoveel inkt krijgt als andere populaire raamwerken zoals Rails, is het net zo goed een gepolijst raamwerk als de rest. Het legt veel nadruk op het DRY-principe (Do not Repeat Yourself) in schone codering door veel van de processen bij het programmeren te automatiseren.
Om een of andere reden worden projecten van tijd tot tijd vaak op locatie verplaatst. Dit kan een absolute last zijn om mee om te gaan als je niet eerst vooruit plant voor de mogelijkheid. Rob Hudson heeft een uitstekende techniek om ervoor te zorgen dat je Django-implementaties eenvoudig kunnen worden verplaatst, waarbij je slechts enkele regels code in je instellingenbestanden hoeft te bewerken.
Mijn standaard Django-instellingenbestand is in de loop van de tijd veranderd om nu instellingen op te nemen die niet afhankelijk zijn van de locatie van het project in het bestandssysteem. Dit is geweldig in een teamomgeving waarin meer dan één persoon aan hetzelfde project werkt, of wanneer u uw project implementeert op een webserver die waarschijnlijk verschillende paden naar de hoofdmap van het project heeft.
De post van Rob heeft uitstekende codevoorbeelden voor het op een zeer flexibele manier opzetten van je Django-installatie.
In plaats van afzonderlijke links te coderen, probeert u de achterwaarts compatibele % url% -tag te gebruiken om hetzelfde resultaat te bereiken. Dit geeft je de absoluut URL, zodat als, de hemel verhoede, je Django-project beweegt, de links nog steeds intact blijven.
In essentie neemt de % url% een weergavenaam en de bijbehorende parameters en wordt een reverse lookup uitgevoerd om de opgevraagde URL te retourneren. Als u uw urls.py-bestand wijzigt, worden de koppelingen niet verbroken.
Hoewel het niet de meest geavanceerde tip is, is het een uitstekende techniek om te gebruiken in je django-projecten.
Mogelijk is een van de grootste functies van Django het gebruikersauthenticatiesysteem dat Django tot in de kern heeft gebouwd. Het is heel eenvoudig in te stellen en het zit boordevol robuust systeem om gebruikers te authenticeren en andere noodzakelijke instellingen te configureren.
Dit gebruikerssysteem is zo geweldig dat er zelfs gesuggereerd is om Django te gebruiken als je admin-gebied voor je PHP-applicatie. Hier is Jeff Croft over waarom Django een geweldige oplossing is voor een administratiesysteem voor elke toepassing, ongeacht de taal:
Een van de kernfilosofieën van Django is losse koppeling. Naast de meer aanlokkelijke free-love connotatie, betekent dit dat elk van de lagen Django's 'Ästack'Äù onafhankelijk moet zijn van de anderen, zodat je kunt kiezen om alleen stukjes en beetjes te gebruiken en / of te glijden in andere componenten als je dat liever hebt. Gelukkig, het is ongelooflijk eenvoudig om de basis van de Django-modellaag te leren, die databaseschema en object-relationele mapping verwerkt "zelfs als je Python niet kent. Iedereen kan een databaseschema maken in Django en het kroonjuweel van het raamwerk krijgen - het is de admin-interface - met heel weinig werk, zelfs als u van plan bent de toepassingslogica zelf in een andere taal te schrijven.
Met Django kunt u statische bestanden in uw ontwikkelomgeving weergeven, maar niet je productieomgeving. Waarom? Het is niet efficiënt. Helemaal niet. Jacobian.org geeft een verklaring.
Django bedient je bewust niet van media en het is zo ontworpen dat je jezelf kunt redden. Als u media van dezelfde Apache-instantie serveert die Django serveert, gaat u absoluut de prestaties ondermijnen. Apache hergebruikt processen tussen elk verzoek, dus zodra een proces alle code en bibliotheken voor Django in de cache opslaat, blijven die in het geheugen rondhangen. Als u dat proces niet gebruikt om een Django-verzoek te verwerken, wordt alle geheugenoverhead verspild.
Door een aparte server te gebruiken voor het onderbrengen en serveren van deze statische bestanden, zullen uw prestaties niet lijden. Als u geen server wilde kopen, kunt u Amazon S3 gebruiken om de bestanden relatief goedkoop te huisvesten.
Foutopsporingstools voor elke taal zijn van onschatbare waarde. Ze versnellen de ontwikkeling door fouten in uw code te ontdekken en mogelijke valkuilen die kunnen optreden. Rob Hudson heeft onlangs de django debug-werkbalk vrijgegeven om te helpen met debugging-code, en het kan elke ontwikkelaar enorm helpen.
De werkbalk zelf is een stukje middleware die elk paneelobject op verzoek instelt en verwerking en weergave uitvoert terwijl het antwoord wordt teruggeschreven naar de browser. Op deze manier is het in feite een reeks middlewareklassen (de panelen) die zijn gegroepeerd om een enkele werkbalk weer te geven. Elk paneel subklasse een basispaneelklasse en overschrijft een aantal methoden om de werkbalk weer te geven.
Het testen van eenheden is een goede manier om ervoor te zorgen dat uw wijzigingen in de code werken zoals verwacht en breekt geen oudere code om achterwaartse compatibiliteit te handhaven. Een geweldige functie in Django is dat het ongelooflijk eenvoudig is om eenheidstests te schrijven. Django biedt de mogelijkheid om de doctest of unittest rechtstreeks uit de doos te gebruiken.
De documentatie van Django biedt een geweldige handleiding en een aantal voorbeeldcodes voor het instellen van eenheidstests om uw code soepel te laten werken en eventuele vervelende bugs te herkennen.
Is valsspelen verkeerd? Ik hoop het niet. Deze handige cheatheet van twee pagina's bevat enkele gouden goudklompjes binnen handbereik die je misschien in de Django-documentatie moet zoeken om te vinden.
De cheatsheet bevat deze nuttige onderwerpen:
templates
modellen
vormen
We weten allemaal dat tijd besteed aan het kijken naar documentatie tijd is om de problemen van de wereld niet via code op te lossen. En geen goede programmeur wil dat.
Django-chunks is in wezen een manier om blokken hergebruikte code in je sjablonen te maken. Het maken van de blokken wordt nog eenvoudiger gemaakt door de rich text-editor van Django te gebruiken.
Nou, in wezen staat het iemand toe om "chunks" te definiëren (ik wilde het blokken noemen, maar dat zou om voor de hand liggende redenen erg verwarrend zijn) van inhoud in je sjabloon die direct kan worden bewerkt vanuit de geweldige Django-beheerinterface. Als je daar een rich text-editorstuur bovenop zet, wordt het nog eenvoudiger.
Door stukjes herbruikbare code te repliceren, zorgt django-chunks ervoor dat stukjes van de lay-out snel en eenvoudig kunnen worden gewijzigd als dat nodig is. Hoewel django-chunks eigenlijk alleen een model- en sjabloontag is, kan het de ontwikkeling enorm versnellen door processen te repliceren.
Als de prestaties een probleem worden met je door Django aangedreven applicatie, wil je een soort van caching installeren. Hoewel Django veel opties voor caching biedt, is verreweg de beste memcached. Het installeren en gebruiken van memcached is vrij eenvoudig met Django als je de cmemcache-module gebruikt. Nadat de module is geïnstalleerd, hoeft u slechts één configuratie-optie te wijzigen en worden uw Django-pagina's snel verlicht.
Als je Django's kracht nog steeds niet volledig begrijpt na het lezen van dit artikel, is er een logische reden voor het gebruik van Django in je volgende project: je bespaart tijd bij het hacken van ontwerpen met verschillende sets software. Jeff Croft legt uit waarom het maken van een project in Django veel efficiënter is dan het samen proberen hacken van scripts.
Als u gewend bent om sites te bouwen met een blogapp (Wordpress, TXP, enz.) Als een CMS, dan bent u gewend om dat gratis te krijgen. Maar je krijgt ook een hoop dingen ingebouwd die je misschien niet wilt (tenzij je natuurlijk een blog aan het bouwen bent). De beperking die ik tegenkwam bij het gebruiken van een blog-app voor mijn persoonlijke site, is dat ik wilde dat het meer was dan alleen een blog. Zodra ik een blog probeerde te hacken in een fotogalerij, een linksfeed, een statistiekdatabase, een Sudoku-spel of wat ik ook maar kon bedenken, begon het te cruisen. Ik heb ook een website gebouwd waarin ik probeerde een discussieforums-app (vBulletin) te gebruiken als een CMS, en dat had dezelfde resultaten. Het werkte - een beetje - maar het was niet uitbreidbaar, was erg hackachtig en was over het algemeen onelegant.
Met Django krijg je al deze dingen en geen van de beperkingen van een blog-app.
Met Django kun je je website letterlijk in elke richting uitbreiden zonder je zorgen te hoeven maken over het hacken van het ontwerp of ervoor te zorgen dat de scripts en databases compatibel zijn. Het is gewoon werken.
Glen Stansberry is een webontwikkelaar en blogger die meer worstelt dan hij zou willen toegeven met CSS. Je kunt meer tips over webontwikkeling lezen op zijn blog Web Jackalope.
Als je dit bericht nuttig hebt gevonden, zeg je bedankt met een Digg of struikelen.