Att bygga webbapplikationer med hjälp av Django

Preview:

DESCRIPTION

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

Citation preview

for perfectionists with deadlines

Simon Johanssonmail@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

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.

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”

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?

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

URL, webbadressTeckensträ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 funktionalitetEtt 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 requesten

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 dataBehö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.html

Template-taggar + filter

base.html

Template-taggar + filter

blog_post.html

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

Kolla in!

Uppgift 9 & 10

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.

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.

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.comDjango Stockholm Meetup Group

Tack!

Recommended