Upload
simon-johansson
View
292
Download
5
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
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!