SlideShare a Scribd company logo
1 of 53
for perfectionists with deadlines
Simon Johansson
mail@simon-johansson.com
1. Klient- vs Serverprogrammering
2. Vad är Django och varför använder vi det?
3. Hur är Django uppbyggt?
4. Hur arbetar vi med Django?
5. Djangos Templates
6. Uppgiften 9 & 10
Upplägget för dagens föreläsning
Vad ni kommer att ta med er här ifrån
Vad Django är och hur det skiljer sig från
det ni har gjort tidigare.
Varför det är bra för oss som pluggar
interaktionsdesign &
Marknadskommunikation och IT att lära
sig grunderna i ett ramverk som Django.
Ställ frågor!
django-explained.se
Instruktionsfilmer
Varför ska ni bry er?
Ha en förståelse för vad som är möjligt
Kunna kommunicera med
programmerare
Kunna testa avancerade interaktioner
Attraktivt med Django-utvecklare
Klient- vs Serverprogrammering
Klientprogrammering
Kod som körs och tolkas av webbläsaren
HTML, CSS & JavaScript.
Serverprogrammering
Kod som körs på servern som
tillhandahåller webbsidan.
Python, PHP, Ruby, Java, .NET mm.
Dynamisk vs Statisk
“Sidor som är kopplade
mot en databas och där
det är möjligt att påverka
innehållet på sidan utan
att skriva kod”
Dynamisk
a
webbsidor
Statiska
webbsidor
“Sidor som alltid ser
likadana ut, användaren
kan inte påverka
innehållet”
Statiska webbsidor
+ Kräver nästan inget av servern
+ Går snabbt att utveckla
- Måste ändra i koden för att anpassa
innehållet
- Vi vet inte exakt hur vår kod kommer att
tolkas av webbläsaren
Dynamiska webbsidor
+ Kan validera saker på ett säkert sätt
+ Gömma känsliga uträkningar
+ Påverka innehållet utan att behöva skriva kod
+ Kan skapa mallar för vårt innehåll
- Kräver att vår server har viss funktionalitet
- Sidan måste vara kopplad mot en databas
- Tar längre tid att utveckla
Vad är Django och
varför använder vi det?
Vad är Django?
Ramverk som hjälper oss
att skapa dynamiska sidor.
Ramverk = Kodstruktur som vi
kan ta hjälp av för att lösa en
specifik uppgift.
Varför använder vi ett ramverk som Django?
Får mycket gratis, vi kan koncentrera
oss på det som är intressant
Praktiskt att följa en standard
Designmönstret som Django bygger på
underlättar samarbeta
Lite historik om Django
Första versionen 2003, open source från
2005
Nya versioner släpps kontinuerligt, senaste
versionen är 1.6.2
Taskig bakåtkompatibilitet
Stödjer fr.o.m. version 1.6 även Python 3.x
Företag som använder sig av Django
Filosofin bakom Django
Hur är Django
uppbyggt?
Hur är Django uppbyggt?
Bygger på designmönstret
Model Template View
MTV
Model
Template
View
Presenterar data till användaren.
Genom HTML i vårt fall
Hanterar data och skriver till
databasen
Hanterar användarens förfrågningar
(requests) och anropar resurser för
att svara på dem. Utgör navet i
ramverket
MTV
Model
Template
View
Hur skall data lagras i databasen?
Vad har vi för data lagrad där just nu?
Ska data hämtas från eller sparas till
databasen?
Vilken data skall hämtas/sparas?
Hur ska vi presentera vår data?
Vad är en request & URL?
Request
En förfrågan som skickas till vår server
URL, webbadress
Teckensträng som identifierar en webbplats
Från request till response
<HTML>
Template
Model
View1
2
3
4
5
6
Fördelarna med MTV
Vi kan ändra i någon utav delarna utan
att det förstör någon annan del
Lättare att felsöka
Underlättar samarbete
Django-projekt vs Django-app
Projektet utgör hela webbplatsen
Appar utgör webbplatsens funktionalitet
Ett projekt kan ha flera appar
Återanvända appar i andra projekt
Att arbeta med
Django
Kommandoprompten / Terminalen
Innan vi börjar…
1. Installera Python
2. Göra Python tillgängligt från terminalen
3. Installera Django
4. Fixar en bra texteditor/IDE (IDLE duger
inte!)
Skapa ett nytt Django-projekt
django-admin.py startproject
manage.py – Använder vi för att
prata med vårt projekt.
settings.py – Allmänna
inställningar för projektet
urls.py – Kollar på URL:en för
en request och skickar vidare
Skapa en Django-app
manage.py startapp
models.py – Hur data skall
sparas i databasen
views.py – Tar emot och
hanterar requests
templates (mapp) – HTML-
filerna som utgör våra mallar
Skapa/uppdatera databasen
manage.py syncdb
Skapar tabeller i databasen
där vi kan spara vår data
Behöver inte vara expert på
databaser för att använda
Django
Skapa/uppdatera databasen
manage.py runserver
Startar Djangos
utvecklingsserver lokalt på vår
dator
localhost:8000
Template-taggar +
filter
Separera design från logik
Separera designers från kod
Separera design från
programmerare
Varför är Templates bra?
Template-taggar + filter
<HTML>
Template
Model
View1
2
3
4
5
Template-taggar + filter
Skriva ut variabler
Template-taggar + filter
Filter
Template-taggar + filter
Template-taggar + filter
Template-taggar + filter
Template-taggar + filter
Template-taggar + filter
Template-taggar + filter
base.ht
ml
Template-taggar + filter
base.ht
ml
Template-taggar + filter
blog_post.html
docs.djangoproject.com/en/dev/ref/templates/builti
ns/
Kolla in!
Uppgift 9 & 10
Angående uppgifterna
Uppg 9
Bygg en blogg
Skapa nya blogginlägg via Djangos
administrationsgränssnitt.
Allt innehåll i bloggen ska gå att nå via en
gemensam index-sida.
Det ska gå att kommentera enskilda inlägg.
Angående uppgifterna
Uppg 10
Utbyggnad av blogg
Bloggen skall även innehålla minst två ytterligare
sidor, tex ”Portfolio” och ”Kontakt”.
Samtliga sidor på bloggen ska vara dynamiska och
gå att ändra ifrån admin-gränssnittet.
Det ska finnas en meny med länkar som genereras
automatiskt utifrån de dynamiska sidorna.
Mer Django-material
Kolla in F.A.Q på
django-explined.se
Lär er att navigera i
dokumentationen
Ställ frågor i iLearn
Måste ange python i terminalen innan ni anropar Django.
OBS! För MAC-användare
python django-admin.py startproject
python manage.py runserver
meetup.com
Django Stockholm Meetup Group
Tack!

More Related Content

Similar to Att bygga webbapplikationer med hjälp av Django

Metodik - Versionshantering, pakethantering, paketering och testning
Metodik - Versionshantering, pakethantering, paketering och testningMetodik - Versionshantering, pakethantering, paketering och testning
Metodik - Versionshantering, pakethantering, paketering och testningJohan Holmberg
 
Introduktion till HTML
Introduktion till HTMLIntroduktion till HTML
Introduktion till HTMLAnton Tibblin
 
HT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med PythonHT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med PythonAnton Tibblin
 
VT2019 - DA355A - CSS Grid & Webbramverk
VT2019 - DA355A - CSS Grid & WebbramverkVT2019 - DA355A - CSS Grid & Webbramverk
VT2019 - DA355A - CSS Grid & WebbramverkAnton Tibblin
 
Välj rätt i teknikdjungeln
Välj rätt i teknikdjungeln Välj rätt i teknikdjungeln
Välj rätt i teknikdjungeln Creuna Sverige
 
Effektiv dokumenthantering i SharePoint frukost seminarium NFI
Effektiv dokumenthantering i SharePoint frukost seminarium NFIEffektiv dokumenthantering i SharePoint frukost seminarium NFI
Effektiv dokumenthantering i SharePoint frukost seminarium NFILars Blixt
 
Wpbar jkpg hur kan vi skriva bättre plugins
Wpbar jkpg   hur kan vi skriva bättre pluginsWpbar jkpg   hur kan vi skriva bättre plugins
Wpbar jkpg hur kan vi skriva bättre pluginsPlux Stahre
 
Kravställning i webbprojekt
Kravställning i webbprojektKravställning i webbprojekt
Kravställning i webbprojekt7minds AB
 
Responsiv webbdesign + HTML5 + CSS5
Responsiv webbdesign + HTML5 + CSS5Responsiv webbdesign + HTML5 + CSS5
Responsiv webbdesign + HTML5 + CSS5Martin Carlsson
 
Spbl Fö6 Designprinciper Och Xml
Spbl Fö6   Designprinciper Och XmlSpbl Fö6   Designprinciper Och Xml
Spbl Fö6 Designprinciper Och Xmlbildljuddsv
 
Triggerfish Google tag manager webinar 2020-03-19
Triggerfish Google tag manager webinar 2020-03-19Triggerfish Google tag manager webinar 2020-03-19
Triggerfish Google tag manager webinar 2020-03-19Jakob Pernvik
 
Webbens Arkitektur
Webbens ArkitekturWebbens Arkitektur
Webbens Arkitekturniklal
 
Tips för bättre agila webbprojekt
Tips för bättre agila webbprojektTips för bättre agila webbprojekt
Tips för bättre agila webbprojekt7minds AB
 
Webbapplikationer - Kursintroduktion (anton.tibblin@mah.se)
Webbapplikationer - Kursintroduktion (anton.tibblin@mah.se)Webbapplikationer - Kursintroduktion (anton.tibblin@mah.se)
Webbapplikationer - Kursintroduktion (anton.tibblin@mah.se)Anton Tibblin
 
Presentation Sitevisiondagarna 2011
Presentation Sitevisiondagarna 2011Presentation Sitevisiondagarna 2011
Presentation Sitevisiondagarna 2011Kent Cederström
 
CV Johan Kempe Details
CV Johan Kempe DetailsCV Johan Kempe Details
CV Johan Kempe DetailsJohan Kempe
 
SEO Do's and Don'ts - Söklandskapet 2018
SEO Do's and Don'ts - Söklandskapet 2018SEO Do's and Don'ts - Söklandskapet 2018
SEO Do's and Don'ts - Söklandskapet 2018Linus Logren
 

Similar to Att bygga webbapplikationer med hjälp av Django (20)

Metodik - Versionshantering, pakethantering, paketering och testning
Metodik - Versionshantering, pakethantering, paketering och testningMetodik - Versionshantering, pakethantering, paketering och testning
Metodik - Versionshantering, pakethantering, paketering och testning
 
Sympathy for data
Sympathy for dataSympathy for data
Sympathy for data
 
Wordpress och Open Sorce
Wordpress och Open SorceWordpress och Open Sorce
Wordpress och Open Sorce
 
Introduktion till HTML
Introduktion till HTMLIntroduktion till HTML
Introduktion till HTML
 
HT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med PythonHT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med Python
 
VT2019 - DA355A - CSS Grid & Webbramverk
VT2019 - DA355A - CSS Grid & WebbramverkVT2019 - DA355A - CSS Grid & Webbramverk
VT2019 - DA355A - CSS Grid & Webbramverk
 
Välj rätt i teknikdjungeln
Välj rätt i teknikdjungeln Välj rätt i teknikdjungeln
Välj rätt i teknikdjungeln
 
Effektiv dokumenthantering i SharePoint frukost seminarium NFI
Effektiv dokumenthantering i SharePoint frukost seminarium NFIEffektiv dokumenthantering i SharePoint frukost seminarium NFI
Effektiv dokumenthantering i SharePoint frukost seminarium NFI
 
Wpbar jkpg hur kan vi skriva bättre plugins
Wpbar jkpg   hur kan vi skriva bättre pluginsWpbar jkpg   hur kan vi skriva bättre plugins
Wpbar jkpg hur kan vi skriva bättre plugins
 
Kravställning i webbprojekt
Kravställning i webbprojektKravställning i webbprojekt
Kravställning i webbprojekt
 
Responsiv webbdesign + HTML5 + CSS5
Responsiv webbdesign + HTML5 + CSS5Responsiv webbdesign + HTML5 + CSS5
Responsiv webbdesign + HTML5 + CSS5
 
Spbl Fö6 Designprinciper Och Xml
Spbl Fö6   Designprinciper Och XmlSpbl Fö6   Designprinciper Och Xml
Spbl Fö6 Designprinciper Och Xml
 
Triggerfish Google tag manager webinar 2020-03-19
Triggerfish Google tag manager webinar 2020-03-19Triggerfish Google tag manager webinar 2020-03-19
Triggerfish Google tag manager webinar 2020-03-19
 
Webbens Arkitektur
Webbens ArkitekturWebbens Arkitektur
Webbens Arkitektur
 
Tips för bättre agila webbprojekt
Tips för bättre agila webbprojektTips för bättre agila webbprojekt
Tips för bättre agila webbprojekt
 
Webbapplikationer - Kursintroduktion (anton.tibblin@mah.se)
Webbapplikationer - Kursintroduktion (anton.tibblin@mah.se)Webbapplikationer - Kursintroduktion (anton.tibblin@mah.se)
Webbapplikationer - Kursintroduktion (anton.tibblin@mah.se)
 
Presentation Sitevisiondagarna 2011
Presentation Sitevisiondagarna 2011Presentation Sitevisiondagarna 2011
Presentation Sitevisiondagarna 2011
 
Vad är webb
Vad är webbVad är webb
Vad är webb
 
CV Johan Kempe Details
CV Johan Kempe DetailsCV Johan Kempe Details
CV Johan Kempe Details
 
SEO Do's and Don'ts - Söklandskapet 2018
SEO Do's and Don'ts - Söklandskapet 2018SEO Do's and Don'ts - Söklandskapet 2018
SEO Do's and Don'ts - Söklandskapet 2018
 

Att bygga webbapplikationer med hjälp av Django

Editor's Notes

  1. Ta det lugnt, det är inte bråttom! Tänt på Mimmi Stäng av mobilen
  2. Gick den här kursen förra året och tyckte att det var kul med Django
  3. Teoretisk, filmerna är praktiska.
  4. Kommer skert vara saker som ni inte har stött på tidigare så ställ frågor om det är något ni kommer på Har inte haft föreläsningen innan så det är svårt att veta hur djupt jag skall gå på olika aspektrt Eftersom att det är sista föreläsningen så kanske ni vill ställa fråga om någon annan del i kursen. Kör hårt. Installera Django i pausen alt efter föreläsningen beroände på hur länge vi håller på.
  5. Bygga en blogg, Kommer att prata lite mer om uppgiften senare En film kvar, kommer idag eller imorgon.
  6. Ha en förståelse vad som är möjligt, relevant även om man inte tänker sig att bli programmerare för vi kommer att jobba med programmering inderekt. Det som sker bakom kulliserna, på servern, styr till viss del vad som är möjligt att göra på klientsidan. Vad vi kan göra, vad som är möjligt att göra inom ramen för ett visst projekt. Även om vi inte kanske kommer att programmera en viss sak så behöver vi veta hur mycket resurser det kommer att ta. MARK IT kommer att vara projektledare… Man blir inte populär som designer om man kommer med konstiga förfrågningar. Om vi lär oss att använda programmeringstermer har vi också större möjlighet att få det precis som vi vill. Kommer inte hur långt som helst på photoshop eller prototyper i powerpoint. Ibland måste man testa på rktigt och då är det en väldig fördel om man kan testa själv. 11 annonser på arbetsförmedlngen där de sökte folk som hade erfarenhet av Django
  7. För att vi skall kunna komma underfund med vad Django är så måste vi först förstå skillnaden på klient och server Klientprogrammering = det ni har gjort hittills när det kommer till webbprogrammering Klienten = den som surfar in på vår sida. Vilket språk som helst, beroände på vad vi har installerat på vår server. Serverprogrammering tillåter oss att skapa dynamiska sidor.
  8. Exempel på statiska hemsidor är era portfoliosidor. Ser alltid likadana ut. Exempel på dynamisk webbsida är blocket… Kräver olika saker av vår server (vad är en server?). Statisk = behöver bara att tillhandahålla filer (html, css och javascript-filer) Dynamisk = måste kunna anpassa sig till vad användaren vill göra. Spara/hämta saker ur databasen. Mm. Om vi har all information sparad i databasen, istället för att den är skriven direkt i html,
  9. Vi behöver bara låta användaren kunna komma åt våra HTML, CSS och JavaScript-filer. Behöver inte stödja några speciella programmeringsspråk eller databaser. Generellt för all klientprogrammering och det kommer vi aldrig undan från, olika webbläsare tolkar koden på olika sätt. Användaren har ju också möjlighet att stänga av tex. javascripten i sin webbläsare. Inte så bra om ni tänker på uppg 3.
  10. Påverka innehållet, inte bara besökare av sidan genom kommentarer. Administrera en blogg, skriva nya blogginlägg utan att behöva rota i HTML-filerna. Tar längre tid. Om vi bara skapar en portfoliosida som bara vi skall kunna ändra och vi vet att vi kanske inte behöver ändra den speciellt ofta så räcker det bra med att ha en statisk sida. Tjänar på det tidsmässigt. Frågor?!
  11. I Djangos fall så är den uppgiften att hjälpa oss att bygga dynamiska webbsidor består dessa filerna av Python, eftersom att Django är skriven i Python Finns andra ramverk som är skrivna i Python men Django är det mest utbyggda.
  12. Får mycket gratis. Gör de vanligaste uppgifterna, så som spara och hämta saker i databasen, enkla att utföra. Vi kan börja tänka på vad som gör vår sida unik och börja koda det som är intressant för oss istället för att lägga vikt vid hur en request som når vår server skall tolkas för det sköter django åt oss Bra community som redan har skapat mycket som går att återanvända Dokumentationen är väldigt bra. Praktiskt att följa en standard, Vet exakt hur ett Django-projekt är uppbyggt vilket gör det smidigt för andra att hjälpa till. Ett projekt behöver inte vara beroände av en person Följer en standard, lättare att samarbeta Gör de vanligaste uppgifterna enkla att utföra
  13. För att fungera till olika nyhetssiter. Hjälpa journalister att nå deadlines. Open source, därav den starka communityn. Vem som helst kan bidra.
  14. Kan skriva mycket med lite kod
  15. Designmönstret Model Template View. Samma princip som Model View Controller som andra ramverk bygger på, tex Ruby on Rails. De olika delarna i ramverket är uppdelade och separerade från varandra.
  16. Designmönstret Model Template View. De olika delarna i ramverket är uppdelade och separerade från varandra.
  17. Designmönstret Model Template View. De olika delarna i ramverket är uppdelade och separerade från varandra.
  18. För att förklara hur de olika delarna hänger ihop… Requesten tolkas av vår server och vi gör sedan olika saker beroände på vad det är för typ av request Spara/hämta ur databasen
  19. View tar emot en request ( Webbläsaren klarar inte av att tolka något annat än HTML. När vi har fyllt templaten med information så har vi också skapat en HTML-sida.
  20. Varför är uppdelningen bra? Eftersom att det är tydligt hur de olika delarna i ramverket komminucerar med varandra så behöver vi inte vara oroliga att Det är Lättare att samarbeta på ett stort projekt. Vi som deesigners ansvarar för templates, som styr över presentationen av sidan. Medan programmerarna kan ansvara för det som sker bakom kulliserna med databas-hanteringen mm.
  21. När vi har
  22. Måste använda för att snacka med vårt Django-projekt Vi kommer att använda den fö att installera Django, skapa databas och starta servern mm. Eftersom att django körs på servern som hemsidan ligger på så måste vi även starta en server för att kunna testa vårat projekt undertiden som vi utvecklar. Django har en inbyggd utvecklingsserver som kan köras ifrån den datorn som man utvecklar ifrån. SMIDIGT! Tar upp det i filmerna.
  23. Python tillgängligt från början på MAC? Integrated development environment. Kan tolka vår Python-kod medan vi skriver den, gör att vi kan hitta fel utan att behöva testa koden.
  24. Python tillgängligt från början på MAC? Integrated development environment. Kan tolka vår Python-kod medan vi skriver den, gör att vi kan hitta fel utan att behöva testa koden.
  25. Python tillgängligt från början på MAC? Integrated development environment. Kan tolka vår Python-kod medan vi skriver den, gör att vi kan hitta fel utan att behöva testa koden.
  26. DSV har kurser i databas-hantering men man behöver absolut inte vara proffs på databaser för att kunna använda Django. Förklarar allt man behöver kunna/tänka på i filmerna
  27. Ingen litteratur Allt som ni behöver skall finnas på django-explained.se Kommer att lägga upp den sista filmen idag eller imorgon men ni kan börja… spelar ingen roll.
  28. Ingen litteratur Allt som ni behöver skall finnas på django-explained.se Kommer att lägga upp den sista filmen idag eller imorgon men ni kan börja… spelar ingen roll.
  29. Vad har Peter sagt? Behöver inte kommentera varje rad men lite så att jag kan se att ni har förstått. Om ni har tagit något från internet.
  30. Vad har Peter sagt? Behöver inte kommentera varje rad men lite så att jag kan se att ni har förstått. Om ni har tagit något från internet.