SlideShare a Scribd company logo
Episode X: The Python
Way Of The Force
May the web be with you…
HT15, DA354A - Introduktion till Webbprogrammering - Bottle
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)
HT15, DA354A - Introduktion till Webbprogrammering - Bottle
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…
HT15, DA354A - Introduktion till Webbprogrammering - Bottle
Demo – olika routes
HT15, DA354A - Introduktion till Webbprogrammering - Bottle
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
HT15, DA354A - Introduktion till Webbprogrammering - Bottle
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
HT15, DA354A - Introduktion till Webbprogrammering - Bottle
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

HT15, DA354A - Introduktion till Webbprogrammering - Bottle

  • 1. Episode X: The Python Way Of The Force May the web be with you…
  • 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)
  • 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…
  • 22. Demo – olika routes
  • 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
  • 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
  • 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