10 Insanely Useful Django Tips

Det er mange gode, små triks og tips man kan bruke på Django-prosjektene som vil fremskynde utviklingen og spare mange hodepine i det lange løp. Fra grunnleggende til obskure kan disse tipsene hjelpe alle dyktighetsnivåer til programmerer å bli bedre med Django, og alt er herlighet.

Django er et utmerket rammeverk for Python. Selv om det ikke får så mye blekk som andre populære rammer som Rails, er det like mye et polert rammeverk som noe av resten. Det legger stor vekt på DRY-prinsippet (Ikke Gjenta selv) i ren koding ved å automatisere mange av prosessene i programmering.

1. Bruk relative baner i konfigurasjonen

Av en eller annen grunn har prosjekter en tendens til å bli flyttet på plass fra tid til annen. Dette kan være en absolutt bjørn å håndtere hvis du ikke først planlegger forut for muligheten. Rob Hudson har en utmerket teknikk for å sikre at Django-distribusjonene dine enkelt kan flyttes, bare å redigere noen linjer med kode i innstillingsfilene dine.

Standard Django-innstillingsfilen min har endret seg over tid til nå inkluderer innstillinger som ikke er avhengig av plasseringen av prosjektet på filsystemet. Dette er flott i et lagmiljø der mer enn én person jobber med det samme prosjektet, eller når du distribuerer prosjektet til en webserver som sannsynligvis har forskjellige veier til prosjektets rotkatalog.

Robs innlegg har gode kodeeksempler for å sette opp Django-installasjonen på en svært fleksibel måte.


Foto av kaet44.

2. Bruk taggen % url%

I stedet for hardcoding individuelle koblinger, prøv å bruke den bakoverkompatible % url% -taggen for å oppnå det samme resultatet. Dette vil gi deg absolutte URL, slik at hvis himmelen forbyder, ditt Django-prosjekt beveger seg, vil linkene fortsatt forbli i takt.

I hovedsak bruker % url% et visningsnavn og dets parametere og gjør en omvendt oppslag for å returnere den forespurte nettadressen. Hvis du gjør endringer i urls.py-filen, vil ikke koblingene bryte.

Selv om det ikke er den mest avanserte tips, er det en utmerket teknikk å bruke i dine django-prosjekter.


Bilde av Dave_Apple.

3. Bruk Django admin for PHP apps

Muligens en av de største funksjonene i Django er brukerautentiseringssystemet som Django har bygget rett inn i kjernen. Det er seriøst enkelt å sette opp, og det er pakket med et robust system for å autentisere brukere og konfigurere andre nødvendige innstillinger.

Dette brukersystemet er så kjempebra at det enda ble foreslått å bruke Django som admin-område for PHP-applikasjonen. Her er Jeff Croft på hvorfor Django er en flott løsning for et administrasjonssystem for enhver applikasjon, uavhengig av språk:

En av Django's kjernefilosofier er løs kobling. I tillegg til den mer tiltalende fri-kjærlighetskonnotasjonen, betyr dette at hvert lag av Django'''Augustack'å burde være uavhengig av de andre, slik at du kan velge å bruke bare biter og deler av det og / eller skyve i andre komponenter hvis du foretrekker det. Heldigvis, det er utrolig enkelt å lære grunnlaget for Django 's modelllag, som håndterer databaseskjema og objektrelasjonell kartlegging' '' 'selv om du ikke kjenner Python. Alle kan lage et databaseskema i Django og få kronjuvelen til rammen - det er admingrensesnitt - med svært lite arbeid, selv om du planlegger å skrive applikasjonslogikken selv på et annet språk.


Bilde av Cloudzilla.

4. Bruk en egen medieserver

Django lar deg betjene statiske filer i utviklingsmiljøet ditt, men ikke ditt produksjonsmiljø. Hvorfor? Det er ikke effektivt. I det hele tatt. Jacobian.org gir en forklaring.

Django serverer bevisst ikke media for deg, og den er designet slik at du kan redde deg selv. Hvis du prøver å betjene media fra samme Apache-instans som serverer Django, vil du helt drepe ytelsen. Apache gjenbruk prosesser mellom hver forespørsel, så en gang en prosess caches all koden og biblioteker for Django, de holder seg fast i minnet. Hvis du ikke bruker denne prosessen for å betjene en Django-forespørsel, blir alt minneposten bortkastet.

Ved å bruke en egen server for å huse og betjene disse statiske filene, vil ytelsen din ikke lide. Hvis du ikke vil kjøpe en server, kan du bruke Amazon S3 til å huse filene relativt billig.


Bilde av winkyintheUK.

5. Bruk Debugger Toolbar

Feilsøkingsverktøy for alle språk er uvurderlig. De fremskynder utviklingen ved å oppdage feil i koden din og potensielle fallgruver som kan skje. Rob Hudson har nylig sluppet ut verktøylinjen for django feilsøking for å hjelpe med feilsøkingskode, og det kan i stor grad hjelpe enhver utvikler.

Verktøylinjen i seg selv er et stykke mellomvare som instantierer hvert panelobjekt på forespørsel, og utfører behandling og gjengivelse når svaret skrives tilbake til nettleseren. På denne måten er det i hovedsak et sett med mellomvareklasser (panelene) gruppert sammen for å vise en enkelt verktøylinje. Hvert panel underklasser en baseplassklasse og overstyrer noen få metoder for å gjøre verktøylinjen.


Bilde av winkyintheUK.

6. Bruk Django Unit Testing

Enhetstesting er en fin måte å sikre at endringene i koden som fungerer som forventet, og ikke bryter noen eldre kode for å opprettholde bakoverkompatibilitet. En flott funksjon i Django er at det er utrolig enkelt å skrive enhetstester. Django tilbyr muligheten til å bruke doktoren eller unittest rett ut av boksen.

Django's dokumentasjon gir en flott opplæring og noen eksempler på hvordan du konfigurerer enhetstester for å holde koden din jevn og se eventuelle ekkel bugs.


Bilde av dave_apple.

7. Bruk et cheatsheet

Er juks feil? Jeg håper ikke. Denne ferske 2-siders cheatsheet inneholder noen gyldne nuggets innenfor armens rekkevidde at man kanskje må grave rundt Django dokumentasjonen for å finne.

Cheatsheet inneholder disse nyttige emnene:

maler

  • Template-koder og deres alternativer
  • Malfiltre og deres alternativer
  • Datoformatering syntaksks hurtigreferanse

modeller

  • Felt og deres muligheter
  • Vanlige feltalternativer
  • Metaklasse alternativer
  • ModelAdmin-alternativer

skjemaer

  • Felt og deres muligheter
  • Vanlige feltalternativer
  • Standard error_messages taster

Vi vet alle tid brukt på å se på dokumentasjon, er det ikke tid til å løse verdens problemer gjennom kode. Og ingen god programmør ønsker det.


Foto av quimpg.

8. Bruk django-biter

Django-biter er egentlig en måte å lage blokker av gjenbrukskode i malene dine. Bortsett fra å lage blokkene blir det enda enklere ved å bruke Django's rike tekstredigerer.

Vel, det gir i det minste noen å definere "biter" (jeg hadde ønsket å kalle det blokker, men det ville være veldig forvirrende av åpenbare grunner) av innholdet i malen din som kan redigeres direkte fra det fantastiske Django admin-grensesnittet. Å kaste en rik tekstredigeringskontroll på toppen av det gjør det enda enklere.

Ved å kopiere biter av gjenbrukbar kode, sikrer django-biter at deler av oppsettet raskt og enkelt kan endres hvis det er nødvendig. Mens django-biter er egentlig bare en modell- og mal-tag, kan den i stor grad øke hastigheten på utviklingen ved å kopiere prosesser.


Bilde av Vince Huang.

9. Bruk Memcache

Hvis ytelsen skal være et problem med Django-drevet programmet, vil du installere en slags caching. Mens Django tilbyr mange muligheter for caching, er det best langt nevnt. Installere og bruke memcached er ganske enkelt med Django hvis du bruker cmemcache-modulen. Når modulen er installert, endrer du bare et enkelt konfigurasjonsalternativ, og Django-sidene dine blir servert lys raskt.


Bilde av lastrandy.

10. Stopp hacking skript sammen og bare bruk Django

Hvis du fortsatt ikke forstår Django kraft fullt ut etter å ha lest denne artikkelen, er det en logisk begrunnelse for å bruke Django i ditt neste prosjekt: Du sparer tid for å hack sammen design med forskjellige sett med programvare. Jeff Croft forklarer hvorfor å lage et prosjekt i Django er mye mer effektivt enn å prøve å hacke sammen skript.

Nå, hvis du er vant til å bygge nettsteder med en blogging-app (Wordpress, TXP, etc.) som et CMS, er du vant til å få alt det gratis. Men du får også mange ting innebygd som kanskje du ikke vil ha (med mindre du selv bygger en blogg). Begrensningen jeg sprang over i å bruke en blogging-app for mitt personlige nettsted er at jeg ville at det skulle være mer enn bare en blogg. Så snart jeg prøvde å hacke en blogg inn i et fotogalleri, eller en koblingsmating, eller en statistikkdatabase, et spill Sudoku, eller hva annet jeg kunne tenke på, begynte ting å bli crufty. Jeg har også bygget et nettsted der jeg prøvde å bruke en diskusjon forums app (vBulletin) som et CMS, og det hadde de samme resultatene. Det fungerte - slags - men det var ikke utvidbart, var veldig hackish, og bare var generelt uheldig.

Med Django får du alle disse tingene og ingen av begrensningene i en blogging-app.

Django gir deg mulighet til å utvide nettstedet ditt til bokstavelig talt ingen retning uten å måtte bekymre deg for hacking av designen eller å sørge for at skript og databaser er kompatible. Det bare virker.


Bilde av JennyHuang.
  • Abonner på NETTUTS RSS-feed for flere daglige webutviklingsopplæringer og artikler.

Glen Stansberry er en webutvikler og blogger som har slitt flere ganger enn han ville ønske å innrømme med CSS. Du kan lese flere tips om webutvikling på hans blogg Web Jackalope.

Hvis du fant dette innlegget nyttig, vennligst si, takk med en Digg eller Stumble.