53
for perfectionists with deadlines

Att bygga webbapplikationer med hjälp av Django

Embed Size (px)

DESCRIPTION

Slides from the course Web Programming, lecture held at The Department of Computer and Systems Sciences at Stockholm University 2014

Citation preview

Page 1: Att bygga webbapplikationer med hjälp av Django

for perfectionists with deadlines

Page 2: Att bygga webbapplikationer med hjälp av Django

Simon Johanssonmail@simon-

johansson.com

Page 3: Att bygga webbapplikationer med hjälp av Django

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

Page 4: Att bygga webbapplikationer med hjälp av Django

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.

Page 5: Att bygga webbapplikationer med hjälp av Django

Ställ frågor!

Page 6: Att bygga webbapplikationer med hjälp av Django

django-explained.se

Instruktionsfilmer

Page 7: Att bygga webbapplikationer med hjälp av Django

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

Page 8: Att bygga webbapplikationer med hjälp av Django

Klient- vs Serverprogrammering

KlientprogrammeringKod som körs och tolkas av webbläsaren

HTML, CSS & JavaScript.

ServerprogrammeringKod som körs på servern som

tillhandahåller webbsidan.

Python, PHP, Ruby, Java, .NET mm.

Page 9: Att bygga webbapplikationer med hjälp av Django

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”

Dynamiska

webbsidor

Statiskawebbsid

or“Sidor som alltid ser

likadana ut, användaren kan inte påverka innehållet”

Page 10: Att bygga webbapplikationer med hjälp av Django

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

Page 11: Att bygga webbapplikationer med hjälp av Django

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

Page 12: Att bygga webbapplikationer med hjälp av Django

Vad är Django och varför använder vi

det?

Page 13: Att bygga webbapplikationer med hjälp av Django

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.

Page 14: Att bygga webbapplikationer med hjälp av Django

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

Page 15: Att bygga webbapplikationer med hjälp av Django

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

Page 16: Att bygga webbapplikationer med hjälp av Django

Företag som använder sig av Django

Page 17: Att bygga webbapplikationer med hjälp av Django

Filosofin bakom Django

Page 18: Att bygga webbapplikationer med hjälp av Django

Hur är Django uppbyggt?

Page 19: Att bygga webbapplikationer med hjälp av Django

Hur är Django uppbyggt?

Bygger på designmönstret

Model Template View

Page 20: Att bygga webbapplikationer med hjälp av Django

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

Page 21: Att bygga webbapplikationer med hjälp av Django

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?

Page 22: Att bygga webbapplikationer med hjälp av Django

Vad är en request & URL?

RequestEn förfrågan som skickas till vår server

URL, webbadressTeckensträng som identifierar en

webbplats

Page 23: Att bygga webbapplikationer med hjälp av Django

Från request till response

<HTML>

Template

Model

View1

2

3

4

5

6

Page 24: Att bygga webbapplikationer med hjälp av Django

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

Page 25: Att bygga webbapplikationer med hjälp av Django

Django-projekt vs Django-app

Projektet utgör hela webbplatsen

Appar utgör webbplatsens funktionalitetEtt projekt kan ha flera appar

Återanvända appar i andra projekt

Page 26: Att bygga webbapplikationer med hjälp av Django

Att arbeta med Django

Page 27: Att bygga webbapplikationer med hjälp av Django

Kommandoprompten / Terminalen

Page 28: Att bygga webbapplikationer med hjälp av Django

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!)

Page 29: Att bygga webbapplikationer med hjälp av Django

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 requesten

Page 30: Att bygga webbapplikationer med hjälp av Django

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

Page 31: Att bygga webbapplikationer med hjälp av Django

Skapa/uppdatera databasen

manage.py syncdb

Skapar tabeller i databasen där vi kan

spara vår dataBehöver inte vara expert på databaser för att använda

Django

Page 32: Att bygga webbapplikationer med hjälp av Django

Skapa/uppdatera databasen

manage.py runserver

Startar Djangos utvecklingsserver lokalt på

vår dator

localhost:8000

Page 33: Att bygga webbapplikationer med hjälp av Django

Template-taggar + filter

Page 34: Att bygga webbapplikationer med hjälp av Django

Separera design från logik

Separera designers från kod

Separera design från programmerare

Varför är Templates bra?

Page 35: Att bygga webbapplikationer med hjälp av Django

Template-taggar + filter

<HTML>

Template

Model

View1

2

3

4

5

Page 36: Att bygga webbapplikationer med hjälp av Django

Template-taggar + filter

Skriva ut variabler

Page 37: Att bygga webbapplikationer med hjälp av Django

Template-taggar + filter

Filter

Page 38: Att bygga webbapplikationer med hjälp av Django

Template-taggar + filter

Page 39: Att bygga webbapplikationer med hjälp av Django

Template-taggar + filter

Page 40: Att bygga webbapplikationer med hjälp av Django

Template-taggar + filter

Page 41: Att bygga webbapplikationer med hjälp av Django

Template-taggar + filter

Page 42: Att bygga webbapplikationer med hjälp av Django

Template-taggar + filter

Page 43: Att bygga webbapplikationer med hjälp av Django

Template-taggar + filter

base.html

Page 44: Att bygga webbapplikationer med hjälp av Django

Template-taggar + filter

base.html

Page 45: Att bygga webbapplikationer med hjälp av Django

Template-taggar + filter

blog_post.html

Page 46: Att bygga webbapplikationer med hjälp av Django

docs.djangoproject.com/en/dev/ref/templates/builtins/

Kolla in!

Page 47: Att bygga webbapplikationer med hjälp av Django

Uppgift 9 & 10

Page 48: Att bygga webbapplikationer med hjälp av Django

Angående uppgifterna

Uppg 9Bygg 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.

Page 49: Att bygga webbapplikationer med hjälp av Django

Angående uppgifterna

Uppg 10Utbyggnad 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.

Page 50: Att bygga webbapplikationer med hjälp av Django

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

Page 51: Att bygga webbapplikationer med hjälp av Django

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

Page 52: Att bygga webbapplikationer med hjälp av Django

meetup.comDjango Stockholm Meetup Group

Page 53: Att bygga webbapplikationer med hjälp av Django

Tack!