SlideShare a Scribd company logo
1 of 40
Episode X: The Python
Way Of The Force
May the web be with you…
Dagens agenda
• Demo på vad vi ska bygga
• Bygga webbsidor med Python
• Webbserver med Python
• Server => Python
• Klient => HTML/CSS
• Bottle som mikroramverk
• Vad är ett mikroramverk?
• Routes => Funktioner
• Bygga vår webbplats
Vad vi ska bygga
http://tibbelit.pythonanywhere.com/
Webbserver?
En webbserver är antingen ett datorprogram som
tillhandahåller webbsidor för en
viss webbplats eller en serverdator på vilken sådan
programvara körs.
I vårt fall ett datorprogram – skrivet i Python
Webbserver
• Ett webbserverprogram har som uppgift att tillhandahålla webbsidor och andra filer
via datakommunikationsprotokollet HTTP eller HTTPS, vanligen över Internet.
• Det förekommer också att en enskild användare kör en webbserver för eget lokalt
bruk på sin egen dator. Vanligen kommunicerar användaren med webbservern med
hjälp av en webbläsare.
• Användaren väljer webbsidor och webbläsaren beställer webbsidorna från
webbservern och visar dem på användarens datorskärm. Webbläsaren är klient till
webbservern.
Internet
Klient
Klient
Server
No place like 127.0.0.1, there is
python -m SimpleHTTPServer 8000
Att starta en webbserver från en specifik mapp genom
Python (från konsolen/terminalen)
Demo –
SimpleHTTPServer
Men – hur mycket
Python var detta
egentligen?
Feel the power of the server side!
Behöver vi bygga allt
själva?
A simpler way, there is
Mikroramverk
• En samling funktioner för att bygga webbplatser, med fokus på
• Snabbt
• Smidigt
• Resurssnålt
• Exempel på mikroramverk
• Bottle (Python)
• Flask (Python)
• Slim (PHP)
• Silex (PHP)
• Camping (Ruby)
• Sinatra (Ruby)
Bottle – Ett mikroramverk i Python
• Bottle har många inbyggda funktioner, men fokuserar på:
• Routing Mappa URL:r mot funktioner
• Templates Skapa mallar (HTML) för att presentera innehåll
• Utilities Tillgång till data, ladda upp filer, cookies, HTTP-möjligheter, m.m.
• Server Inklulderar en inbyggd HTTP-server
• Bottle är endast en enda fil
• Bottle använder bara standard-biblioteket för Python
• Man installera bottle genom PIP, easy_install, eller laddar hem py-filen.
Bottle - Routes
• Vi vill kunna mappa URL till olika funktioner i Python
• /home => def home():
• /contact => def contact():
• /about => def about():
127.0.0.1/home
Starwarsvote.com/home
Thedarkside.com/home
Kom igång med bottle!
Hello <name>
Att använda sig
utav flera routes…
Demo – olika routes
Templates -
Mallar för vår
information
Join the dark side, we have the prettiest web sites!
Bottle - Templates
• Templates är mallar för hur vi ska presentera vår information
• HTML
• CSS
• JavaScript
• Vi kan skicka data (bearbetad utav Python) till våra malla för att skapa dynamiska
webbsidor
Bottle – Templates och statiska filer
• Alla templates ska:
• Ligga i mappen ”view”
• Ha filendelsen *.tpl
• Statiska filer (bilder, css, js, etc.) ska:
• Ligga i mappen ”static”
Hur ser detta ut i bottle?
Demo - templates
Nu till vårt projekt
Routes => Vilka behöver vi?
Route Syfte Metod Template
/ Till vår startsida GET index
/vote Rösta på en sida POST index
/disqus Visa gästbok GET disqus
/disqus-post Skriv ett inlägg POST disqus
*error404* En sida som inte finns Alla error
Testa så att allt fungerar
Let the battle begin
1. Fixa röstningen
2. Fixa gästboken
Röstningen
• Spara alla röster i filen ”votes.txt”
• Spara rösterna som JSON-format, enligt följande mall:
{
"empire": 0,
"rebels": 0
}
• Vi kan omvandla ett lexikon i Python till JSON genom:
• json_votes = json.dumps(votes)
• Vi kan omvandla JSON till Python-datatyper genom:
• Votes = json.loads(json_votes)
Flödesschema
Läs in textfilens
innehåll
Tolka JSON-data till
ett lexikon
Flödesschema
Läs in textfilens
innehåll
Tolka JSON-data till
ett lexikon
Skriv ut
imperiets röster
Skriv ut
Rebellers röster
Skicka röster till
template
Webbsida på internet
Nu bygger vi! ;)
2. Fixa gästboken
Frågor?

More Related Content

What's hot

HT17 - DA156A - Ramverk och bibliotek
HT17 - DA156A - Ramverk och bibliotekHT17 - DA156A - Ramverk och bibliotek
HT17 - DA156A - Ramverk och bibliotekAnton Tibblin
 
Webboptimering 25 min
Webboptimering 25 minWebboptimering 25 min
Webboptimering 25 minFredrik Wendt
 
HT17 - DA156A - JavaScript i webbutveckling
HT17 - DA156A - JavaScript i webbutvecklingHT17 - DA156A - JavaScript i webbutveckling
HT17 - DA156A - JavaScript i webbutvecklingAnton Tibblin
 
#wpsthlm: WordPress prestanda - av Jonas Lejon
#wpsthlm: WordPress prestanda - av Jonas Lejon#wpsthlm: WordPress prestanda - av Jonas Lejon
#wpsthlm: WordPress prestanda - av Jonas Lejontdhftw
 
VT16 - DA355A - Geolocation & media
VT16 - DA355A - Geolocation & mediaVT16 - DA355A - Geolocation & media
VT16 - DA355A - Geolocation & mediaAnton Tibblin
 
HT17 - DA156A - Sammanfattning av kursen
HT17 - DA156A - Sammanfattning av kursenHT17 - DA156A - Sammanfattning av kursen
HT17 - DA156A - Sammanfattning av kursenAnton Tibblin
 
HT17 - DA156A - Kursintroduktion
HT17 - DA156A - KursintroduktionHT17 - DA156A - Kursintroduktion
HT17 - DA156A - KursintroduktionAnton Tibblin
 
HT17 - DA156A - Introduktion till HTML
HT17 - DA156A - Introduktion till HTMLHT17 - DA156A - Introduktion till HTML
HT17 - DA156A - Introduktion till HTMLAnton Tibblin
 
HT17 - DA156A - CSS, Layout 2
HT17 - DA156A - CSS, Layout 2HT17 - DA156A - CSS, Layout 2
HT17 - DA156A - CSS, Layout 2Anton Tibblin
 
Molntjänster som it superhjältar
Molntjänster som it superhjältarMolntjänster som it superhjältar
Molntjänster som it superhjältarPer Åström
 
VT17 - DA355A - Intro JS
VT17 - DA355A - Intro JSVT17 - DA355A - Intro JS
VT17 - DA355A - Intro JSAnton Tibblin
 
HT16 - DA156A - Introduktion till JavaScript
HT16 - DA156A - Introduktion till JavaScriptHT16 - DA156A - Introduktion till JavaScript
HT16 - DA156A - Introduktion till JavaScriptAnton Tibblin
 
HT16 - DA156A - Ramverk och bibliotek
HT16 - DA156A - Ramverk och bibliotekHT16 - DA156A - Ramverk och bibliotek
HT16 - DA156A - Ramverk och bibliotekAnton Tibblin
 
HT16 - DA156A - Kursintroduktion
HT16 - DA156A - KursintroduktionHT16 - DA156A - Kursintroduktion
HT16 - DA156A - KursintroduktionAnton Tibblin
 
Wordpress för föreningens hemsida
Wordpress för föreningens hemsidaWordpress för föreningens hemsida
Wordpress för föreningens hemsidaTechsoup_se
 
jQuery & HTML5 Cache
jQuery & HTML5 CachejQuery & HTML5 Cache
jQuery & HTML5 CacheAnton Tibblin
 

What's hot (20)

LocalStorage
LocalStorageLocalStorage
LocalStorage
 
HT17 - DA156A - Ramverk och bibliotek
HT17 - DA156A - Ramverk och bibliotekHT17 - DA156A - Ramverk och bibliotek
HT17 - DA156A - Ramverk och bibliotek
 
Webboptimering 25 min
Webboptimering 25 minWebboptimering 25 min
Webboptimering 25 min
 
HT17 - DA156A - JavaScript i webbutveckling
HT17 - DA156A - JavaScript i webbutvecklingHT17 - DA156A - JavaScript i webbutveckling
HT17 - DA156A - JavaScript i webbutveckling
 
#wpsthlm: WordPress prestanda - av Jonas Lejon
#wpsthlm: WordPress prestanda - av Jonas Lejon#wpsthlm: WordPress prestanda - av Jonas Lejon
#wpsthlm: WordPress prestanda - av Jonas Lejon
 
Opera
OperaOpera
Opera
 
Introduktion till webbutveckling
Introduktion till webbutvecklingIntroduktion till webbutveckling
Introduktion till webbutveckling
 
VT16 - DA355A - Geolocation & media
VT16 - DA355A - Geolocation & mediaVT16 - DA355A - Geolocation & media
VT16 - DA355A - Geolocation & media
 
HT17 - DA156A - Sammanfattning av kursen
HT17 - DA156A - Sammanfattning av kursenHT17 - DA156A - Sammanfattning av kursen
HT17 - DA156A - Sammanfattning av kursen
 
HT17 - DA156A - Kursintroduktion
HT17 - DA156A - KursintroduktionHT17 - DA156A - Kursintroduktion
HT17 - DA156A - Kursintroduktion
 
HT17 - DA156A - Introduktion till HTML
HT17 - DA156A - Introduktion till HTMLHT17 - DA156A - Introduktion till HTML
HT17 - DA156A - Introduktion till HTML
 
HT17 - DA156A - CSS, Layout 2
HT17 - DA156A - CSS, Layout 2HT17 - DA156A - CSS, Layout 2
HT17 - DA156A - CSS, Layout 2
 
Molntjänster som it superhjältar
Molntjänster som it superhjältarMolntjänster som it superhjältar
Molntjänster som it superhjältar
 
VT17 - DA355A - Intro JS
VT17 - DA355A - Intro JSVT17 - DA355A - Intro JS
VT17 - DA355A - Intro JS
 
HT16 - DA156A - Introduktion till JavaScript
HT16 - DA156A - Introduktion till JavaScriptHT16 - DA156A - Introduktion till JavaScript
HT16 - DA156A - Introduktion till JavaScript
 
HT16 - DA156A - Ramverk och bibliotek
HT16 - DA156A - Ramverk och bibliotekHT16 - DA156A - Ramverk och bibliotek
HT16 - DA156A - Ramverk och bibliotek
 
HT16 - DA156A - Kursintroduktion
HT16 - DA156A - KursintroduktionHT16 - DA156A - Kursintroduktion
HT16 - DA156A - Kursintroduktion
 
Wordpress för föreningens hemsida
Wordpress för föreningens hemsidaWordpress för föreningens hemsida
Wordpress för föreningens hemsida
 
jQuery & HTML5 Cache
jQuery & HTML5 CachejQuery & HTML5 Cache
jQuery & HTML5 Cache
 
Ajax - jQuery
Ajax - jQueryAjax - jQuery
Ajax - jQuery
 

Viewers also liked

I tsavvy ppt_introduction_internet_20150702
I tsavvy ppt_introduction_internet_20150702I tsavvy ppt_introduction_internet_20150702
I tsavvy ppt_introduction_internet_20150702Patrick Epps
 
Introduction to ITsavvy
Introduction to ITsavvyIntroduction to ITsavvy
Introduction to ITsavvyPatrick Epps
 
Российская СУБД Postgres Pro
Российская СУБД Postgres ProРоссийская СУБД Postgres Pro
Российская СУБД Postgres ProAndrey Fleyta
 
Sales Management Mysore University
Sales Management Mysore UniversitySales Management Mysore University
Sales Management Mysore Universitykishore dhinakaran
 
Debt market in israel
Debt market in israelDebt market in israel
Debt market in israelNitzan Shiri
 

Viewers also liked (8)

Tzara Concept Gallery
Tzara Concept GalleryTzara Concept Gallery
Tzara Concept Gallery
 
Henderson resume
Henderson resumeHenderson resume
Henderson resume
 
I tsavvy ppt_introduction_internet_20150702
I tsavvy ppt_introduction_internet_20150702I tsavvy ppt_introduction_internet_20150702
I tsavvy ppt_introduction_internet_20150702
 
Introduction to ITsavvy
Introduction to ITsavvyIntroduction to ITsavvy
Introduction to ITsavvy
 
Российская СУБД Postgres Pro
Российская СУБД Postgres ProРоссийская СУБД Postgres Pro
Российская СУБД Postgres Pro
 
CV_Vitor_Silva
CV_Vitor_SilvaCV_Vitor_Silva
CV_Vitor_Silva
 
Sales Management Mysore University
Sales Management Mysore UniversitySales Management Mysore University
Sales Management Mysore University
 
Debt market in israel
Debt market in israelDebt market in israel
Debt market in israel
 

Similar to HT15, DA354A - Introduktion till Webbprogrammering - Bottle

HT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med PythonHT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med PythonAnton Tibblin
 
HT18 - DA156A - Extra
HT18 - DA156A - ExtraHT18 - DA156A - Extra
HT18 - DA156A - ExtraAnton Tibblin
 
Metodik - Versionshantering, pakethantering, paketering och testning
Metodik - Versionshantering, pakethantering, paketering och testningMetodik - Versionshantering, pakethantering, paketering och testning
Metodik - Versionshantering, pakethantering, paketering och testningJohan Holmberg
 
WebSockets för applikationstestare
WebSockets för applikationstestareWebSockets för applikationstestare
WebSockets för applikationstestareholiman
 
Varje resa börjar med ett litet steg (internetdagarna 2011)
Varje resa börjar med ett litet steg (internetdagarna 2011)Varje resa börjar med ett litet steg (internetdagarna 2011)
Varje resa börjar med ett litet steg (internetdagarna 2011)Per Åström
 
Tjejer Kodar 100 - Dag 4 - Django
Tjejer Kodar 100 - Dag 4 - DjangoTjejer Kodar 100 - Dag 4 - Django
Tjejer Kodar 100 - Dag 4 - DjangoEmil Stenström
 
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
 
VT18 - DA355A/DA344A - Introduktion till HTML
VT18 - DA355A/DA344A - Introduktion till HTMLVT18 - DA355A/DA344A - Introduktion till HTML
VT18 - DA355A/DA344A - Introduktion till HTMLAnton Tibblin
 
VT17 - DA355A - Introduktion HTML
VT17 - DA355A - Introduktion HTMLVT17 - DA355A - Introduktion HTML
VT17 - DA355A - Introduktion HTMLAnton Tibblin
 
VT2018 - DA355A - LocalStorage & Bootstrap
VT2018 - DA355A - LocalStorage & BootstrapVT2018 - DA355A - LocalStorage & Bootstrap
VT2018 - DA355A - LocalStorage & BootstrapAnton Tibblin
 
VT2018 - DA355A - Phonegap, react, vue.js
VT2018 - DA355A - Phonegap, react, vue.jsVT2018 - DA355A - Phonegap, react, vue.js
VT2018 - DA355A - Phonegap, react, vue.jsAnton Tibblin
 
Webbens Arkitektur
Webbens ArkitekturWebbens Arkitektur
Webbens Arkitekturniklal
 
Lemoon cms utbildning
Lemoon cms utbildningLemoon cms utbildning
Lemoon cms utbildningDearFriends
 
VT2019 - DA355A - JS-ramverk
VT2019 - DA355A - JS-ramverkVT2019 - DA355A - JS-ramverk
VT2019 - DA355A - JS-ramverkAnton Tibblin
 
HT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScriptHT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScriptAnton Tibblin
 
Vad är webb för oss?
Vad är webb för oss?Vad är webb för oss?
Vad är webb för oss?Andreas Ek
 
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
 

Similar to HT15, DA354A - Introduktion till Webbprogrammering - Bottle (20)

HT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med PythonHT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med Python
 
HT18 - DA156A - Extra
HT18 - DA156A - ExtraHT18 - DA156A - Extra
HT18 - DA156A - Extra
 
Metodik - Versionshantering, pakethantering, paketering och testning
Metodik - Versionshantering, pakethantering, paketering och testningMetodik - Versionshantering, pakethantering, paketering och testning
Metodik - Versionshantering, pakethantering, paketering och testning
 
WebSockets för applikationstestare
WebSockets för applikationstestareWebSockets för applikationstestare
WebSockets för applikationstestare
 
OPTIMERA STHLM! Loadimpact
OPTIMERA STHLM! LoadimpactOPTIMERA STHLM! Loadimpact
OPTIMERA STHLM! Loadimpact
 
Varje resa börjar med ett litet steg (internetdagarna 2011)
Varje resa börjar med ett litet steg (internetdagarna 2011)Varje resa börjar med ett litet steg (internetdagarna 2011)
Varje resa börjar med ett litet steg (internetdagarna 2011)
 
Tjejer Kodar 100 - Dag 4 - Django
Tjejer Kodar 100 - Dag 4 - DjangoTjejer Kodar 100 - Dag 4 - Django
Tjejer Kodar 100 - Dag 4 - Django
 
Webbapplikationer - Kursintroduktion (anton.tibblin@mah.se)
Webbapplikationer - Kursintroduktion (anton.tibblin@mah.se)Webbapplikationer - Kursintroduktion (anton.tibblin@mah.se)
Webbapplikationer - Kursintroduktion (anton.tibblin@mah.se)
 
VT18 - DA355A/DA344A - Introduktion till HTML
VT18 - DA355A/DA344A - Introduktion till HTMLVT18 - DA355A/DA344A - Introduktion till HTML
VT18 - DA355A/DA344A - Introduktion till HTML
 
VT17 - DA355A - Introduktion HTML
VT17 - DA355A - Introduktion HTMLVT17 - DA355A - Introduktion HTML
VT17 - DA355A - Introduktion HTML
 
VT2018 - DA355A - LocalStorage & Bootstrap
VT2018 - DA355A - LocalStorage & BootstrapVT2018 - DA355A - LocalStorage & Bootstrap
VT2018 - DA355A - LocalStorage & Bootstrap
 
VT2018 - DA355A - Phonegap, react, vue.js
VT2018 - DA355A - Phonegap, react, vue.jsVT2018 - DA355A - Phonegap, react, vue.js
VT2018 - DA355A - Phonegap, react, vue.js
 
Wordpress och Open Sorce
Wordpress och Open SorceWordpress och Open Sorce
Wordpress och Open Sorce
 
Webbens Arkitektur
Webbens ArkitekturWebbens Arkitektur
Webbens Arkitektur
 
Lemoon cms utbildning
Lemoon cms utbildningLemoon cms utbildning
Lemoon cms utbildning
 
VT2019 - DA355A - JS-ramverk
VT2019 - DA355A - JS-ramverkVT2019 - DA355A - JS-ramverk
VT2019 - DA355A - JS-ramverk
 
HT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScriptHT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScript
 
Vad är webb för oss?
Vad är webb för oss?Vad är webb för oss?
Vad är webb för oss?
 
1. projekt management
1. projekt management1. projekt management
1. projekt management
 
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
 

More from Anton Tibblin

2024 - Localstorage & cookies Geolocation Mediahantering.pdf
2024 - Localstorage & cookies Geolocation Mediahantering.pdf2024 - Localstorage & cookies Geolocation Mediahantering.pdf
2024 - Localstorage & cookies Geolocation Mediahantering.pdfAnton Tibblin
 
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbteknikerVT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbteknikerAnton Tibblin
 
VT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutvecklingVT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutvecklingAnton Tibblin
 
DA395A - VT24 - JavaScript & Document object model
DA395A - VT24 - JavaScript & Document object modelDA395A - VT24 - JavaScript & Document object model
DA395A - VT24 - JavaScript & Document object modelAnton Tibblin
 
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbteknikerVT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbteknikerAnton Tibblin
 
HT23 - DA354A - Fil- och felhantering
HT23 - DA354A - Fil- och felhanteringHT23 - DA354A - Fil- och felhantering
HT23 - DA354A - Fil- och felhanteringAnton Tibblin
 
HT23 - DA354A - Listor och lexikon
HT23 - DA354A - Listor och lexikonHT23 - DA354A - Listor och lexikon
HT23 - DA354A - Listor och lexikonAnton Tibblin
 
HT23 - DA354A - Kursintroduktion
HT23 - DA354A - KursintroduktionHT23 - DA354A - Kursintroduktion
HT23 - DA354A - KursintroduktionAnton Tibblin
 
HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)Anton Tibblin
 
HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1Anton Tibblin
 
HT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & BibliotekHT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & BibliotekAnton Tibblin
 
HT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutvecklingHT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutvecklingAnton Tibblin
 
HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)Anton Tibblin
 
HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)Anton Tibblin
 
Introduktion till CSS
Introduktion till CSSIntroduktion till CSS
Introduktion till CSSAnton Tibblin
 
HTML - Tabeller och formulär
HTML - Tabeller och formulärHTML - Tabeller och formulär
HTML - Tabeller och formulärAnton Tibblin
 
Introduktion till HTML
Introduktion till HTMLIntroduktion till HTML
Introduktion till HTMLAnton Tibblin
 
LocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - MediaLocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - MediaAnton Tibblin
 

More from Anton Tibblin (20)

2024 - Localstorage & cookies Geolocation Mediahantering.pdf
2024 - Localstorage & cookies Geolocation Mediahantering.pdf2024 - Localstorage & cookies Geolocation Mediahantering.pdf
2024 - Localstorage & cookies Geolocation Mediahantering.pdf
 
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbteknikerVT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
 
VT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutvecklingVT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutveckling
 
DA395A - VT24 - JavaScript & Document object model
DA395A - VT24 - JavaScript & Document object modelDA395A - VT24 - JavaScript & Document object model
DA395A - VT24 - JavaScript & Document object model
 
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbteknikerVT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
 
HT23 - DA354A - Fil- och felhantering
HT23 - DA354A - Fil- och felhanteringHT23 - DA354A - Fil- och felhantering
HT23 - DA354A - Fil- och felhantering
 
HT23 - DA354A - Listor och lexikon
HT23 - DA354A - Listor och lexikonHT23 - DA354A - Listor och lexikon
HT23 - DA354A - Listor och lexikon
 
HT23 - DA354A - Kursintroduktion
HT23 - DA354A - KursintroduktionHT23 - DA354A - Kursintroduktion
HT23 - DA354A - Kursintroduktion
 
HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)
 
HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1
 
HT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & BibliotekHT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & Bibliotek
 
HT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutvecklingHT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutveckling
 
HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)
 
HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)
 
Introduktion till CSS
Introduktion till CSSIntroduktion till CSS
Introduktion till CSS
 
HTML - Tabeller och formulär
HTML - Tabeller och formulärHTML - Tabeller och formulär
HTML - Tabeller och formulär
 
Introduktion till HTML
Introduktion till HTMLIntroduktion till HTML
Introduktion till HTML
 
Kursintroduktion
KursintroduktionKursintroduktion
Kursintroduktion
 
LocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - MediaLocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - Media
 
jQuery & Ajax
jQuery & AjaxjQuery & Ajax
jQuery & Ajax
 

HT15, DA354A - Introduktion till Webbprogrammering - Bottle

  • 1. Episode X: The Python Way Of The Force May the web be with you…
  • 2.
  • 3. Dagens agenda • Demo på vad vi ska bygga • Bygga webbsidor med Python • Webbserver med Python • Server => Python • Klient => HTML/CSS • Bottle som mikroramverk • Vad är ett mikroramverk? • Routes => Funktioner • Bygga vår webbplats
  • 4. Vad vi ska bygga http://tibbelit.pythonanywhere.com/
  • 6. En webbserver är antingen ett datorprogram som tillhandahåller webbsidor för en viss webbplats eller en serverdator på vilken sådan programvara körs. I vårt fall ett datorprogram – skrivet i Python
  • 7. Webbserver • Ett webbserverprogram har som uppgift att tillhandahålla webbsidor och andra filer via datakommunikationsprotokollet HTTP eller HTTPS, vanligen över Internet. • Det förekommer också att en enskild användare kör en webbserver för eget lokalt bruk på sin egen dator. Vanligen kommunicerar användaren med webbservern med hjälp av en webbläsare. • Användaren väljer webbsidor och webbläsaren beställer webbsidorna från webbservern och visar dem på användarens datorskärm. Webbläsaren är klient till webbservern.
  • 9. No place like 127.0.0.1, there is
  • 10. python -m SimpleHTTPServer 8000 Att starta en webbserver från en specifik mapp genom Python (från konsolen/terminalen)
  • 11.
  • 13. Men – hur mycket Python var detta egentligen? Feel the power of the server side!
  • 14. Behöver vi bygga allt själva? A simpler way, there is
  • 15. Mikroramverk • En samling funktioner för att bygga webbplatser, med fokus på • Snabbt • Smidigt • Resurssnålt • Exempel på mikroramverk • Bottle (Python) • Flask (Python) • Slim (PHP) • Silex (PHP) • Camping (Ruby) • Sinatra (Ruby)
  • 16. Bottle – Ett mikroramverk i Python • Bottle har många inbyggda funktioner, men fokuserar på: • Routing Mappa URL:r mot funktioner • Templates Skapa mallar (HTML) för att presentera innehåll • Utilities Tillgång till data, ladda upp filer, cookies, HTTP-möjligheter, m.m. • Server Inklulderar en inbyggd HTTP-server • Bottle är endast en enda fil • Bottle använder bara standard-biblioteket för Python • Man installera bottle genom PIP, easy_install, eller laddar hem py-filen.
  • 17. Bottle - Routes • Vi vill kunna mappa URL till olika funktioner i Python • /home => def home(): • /contact => def contact(): • /about => def about(): 127.0.0.1/home Starwarsvote.com/home Thedarkside.com/home
  • 18. Kom igång med bottle!
  • 20. Att använda sig utav flera routes…
  • 21.
  • 22. Demo – olika routes
  • 23.
  • 24. Templates - Mallar för vår information Join the dark side, we have the prettiest web sites!
  • 25. Bottle - Templates • Templates är mallar för hur vi ska presentera vår information • HTML • CSS • JavaScript • Vi kan skicka data (bearbetad utav Python) till våra malla för att skapa dynamiska webbsidor
  • 26. Bottle – Templates och statiska filer • Alla templates ska: • Ligga i mappen ”view” • Ha filendelsen *.tpl • Statiska filer (bilder, css, js, etc.) ska: • Ligga i mappen ”static”
  • 27. Hur ser detta ut i bottle?
  • 29. Nu till vårt projekt
  • 30.
  • 31. Routes => Vilka behöver vi? Route Syfte Metod Template / Till vår startsida GET index /vote Rösta på en sida POST index /disqus Visa gästbok GET disqus /disqus-post Skriv ett inlägg POST disqus *error404* En sida som inte finns Alla error
  • 32.
  • 33. Testa så att allt fungerar Let the battle begin
  • 34. 1. Fixa röstningen 2. Fixa gästboken
  • 35. Röstningen • Spara alla röster i filen ”votes.txt” • Spara rösterna som JSON-format, enligt följande mall: { "empire": 0, "rebels": 0 } • Vi kan omvandla ett lexikon i Python till JSON genom: • json_votes = json.dumps(votes) • Vi kan omvandla JSON till Python-datatyper genom: • Votes = json.loads(json_votes)
  • 37. Flödesschema Läs in textfilens innehåll Tolka JSON-data till ett lexikon Skriv ut imperiets röster Skriv ut Rebellers röster Skicka röster till template Webbsida på internet

Editor's Notes

  1. Ändra en route Ändra en return Lägg till en route
  2. Koppla en template till en tpl-fil Skicka data mellan python routes och template