• kth.se
  • Studentwebben
  • Intranät
  • kth.se
  • Studentwebben
  • Intranät
Logga in
DD1319 HT24 (50585)
Laboration W3: Flask
Hoppa över till innehåll
Översikt
  • Logga in
  • Översikt
  • Kalender
  • Inkorg
  • Historik
  • Hjälp
Stäng
  • Min översikt
  • DD1319 HT24 (50585)
  • Uppgifter
  • Laboration W3: Flask
2024 HT
  • Startsida
  • Kursöversikt
  • Moduler
  • Uppgifter
  • Course Evaluation

Laboration W3: Flask

  • Inlämningsdatum 24 feb av 18:00
  • Poäng 1
  • Lämnar in en filuppladdning
  • Filtyper html, pdf, txt, py, jpg, html och css

Tredje labben handlar om webbprogrammering med Python

I denna labb ska du prova att använda Flask. Flask är ett ramverk för webprogrammering med Python.

Läsanvisning:

10.1. Toward Modern Web Development Links to an external site.

10.3. Routing Links to an external site.

10.4. Static Files Links to an external site.

10.5. Rendering Templates Links to an external site.

(och resten av kap 10 om du vill).

Guide till eu.pythonanywhere (slides, med tips till felsökning)

Uppgift 1: Läsa från webben i Python

Här ska du prova att läsa från en webbsida med Python (utan Flask).

Kopiera följande program:

import urllib.request

def räknaOrd(rad):
    orden = rad.split()
    antal = len(orden)
    return antal

def main():
    url = "https://www.gutenberg.org/cache/epub/4300/pg4300.txt"
    webbfil = urllib.request.urlopen(url)
    ordTotalt = 0
    for rad in webbfil:
        radSomSträng = rad.decode()
        ordTotalt += räknaOrd(rad)
    print(ordTotalt)

if __name__== "__main__":
    main()

  1. Lägg till kod som skriver ut några av raderna.
  2. Provkör programmet med några olika webbsidor. 
  3. Spara utskriften som kommentarer sist i ditt program.
  4. Provkör med en webbsida som inte finns. Vad får du för felutskrift?

 

Uppgift 2: Testa Flask på pythonanywhere

Logga in på https://eu.pythonanywhere.com/ Links to an external site. och gå in på Web i menyn.

Ta bort den gamla webappen genom att klicka på Delete-knappen längst ned på sidan. Tryck därefter på Add a new web app till vänster på sidan och följ alla steg i den tutorial du kommer till. Behåll alla föreslagna namn (mysite för katalogen, flask_app.py för programmet). OBS! Om du inte kommer till en tutorial så är alla inställningar troligen klara - hoppa direkt till Uppgift 3.

När du är klar ska du ha en egen "Hello world"-app som du kan nå från din egen pythonanywhere-sida.

anywhere_add_new_web_app2.png

Uppgift 3: Lägg upp programmet horoskop

  1. Spara horoskop-programmet som flask_app.py : 
    #Horoskop
    from flask import Flask
    from random import randrange
    
    def hämta_förutsägelser(filnamn):
        x = ""
        förutsägelselista = []
        try:
            with open(filnamn,"r") as infil:
                for rad in infil:
                    förutsägelselista.append(rad.strip())
        except FileNotFoundError:
            x = "Filen fanns inte"
        return förutsägelselista
    
    def slumpa(förutsägelselista):
        antal = len(förutsägelselista)
        slump = randrange(antal)
        förutsägelse = förutsägelselista[slump]
        return förutsägelse
    
    app = Flask(__name__)
    
    @app.route('/')
    def horoskop():
        filnamn = "static/texter.txt"
        förutsägelselista = hämta_förutsägelser(filnamn)
        förutsägelse = slumpa(förutsägelselista)
    
        htmlkod = " "
        htmlkod += ""
        htmlkod += "  "
        htmlkod += förutsägelse
        htmlkod += " "
        return htmlkod
        
  2. Spara textfilen texter.txt. Om du vill kan du byta ut förutsägelserna mot något annat, t ex träning (20 sit-ups) eller middag (lasagne). 
    Din tama padda kommer att ha magknip under eftermiddagen
    Ditt skosnöre kommer att gå av när du springer till bussen
    Kåren serverar lasagne men du har matlåda med dig
    Pendeltåget är inställt
    Du körde tentan
    Du får gratis kaffe framför KTH Entré
    Du klarade tentan
    Du lyckas boka ett grupprum i biblioteket
    Deadline för inlämningen flyttas fram till nästa måndag
    Det blir plötsligt sommar
  3. Gå in på Files på pythonanywhere och ladda upp både flask_app.py och texter.txt. Programmet flask_app.py ska ligga i mappen mysite, och filen texter.txt ska ligga i mappen static.

 

Uppgift 4: Kan du köra horoskopet från din webbsida?

  1. Gå till Web i menyn på pythonanywhere.
  2. Under rubriken Static Files:
    1. Klicka på Enter URL, skriv /
    2. Klicka på Enter path, skriv /home/<ditt användarnamn>/static
  3. Klicka på Reload-knappen i toppen av sidan
  4. Gå in på din webbsida https://<ditt användarnamn>.eu.pythonanywhere.com/ (t ex https://kthnamn.eu.pythonanywhere.com Links to an external site.)

 

Lämna in

  • Ditt program från uppgift 1, inklusive kommentarer sist med utskrift av progamkörningar.
  • En liten fil med bara länken till din webbsida.

 

Peer review

Om du lämnat in kl 14:45 så kommer du automatiskt att få se tre andras inlämningar. I denna labb är det frivilligt att kommentera på övrigas inlämningar.

Quiz W3

W3: Flask

 

 

 

 

 

1740416400 02/24/2025 06:00pm
Inkludera en beskrivning
Ytterligare kommentarer:
Maxresultat för gradering till > poäng
Inkludera en bedömningstitel

Matris

Hitta matris
Inkludera en titel
Hitta en matris
Titel
Du har redan bedömt studenter med den här matrisen. Större ändringar kan påverka resultaten för deras uppgifter.
 
 
 
 
 
 
 
     
Det går inte att ändra en matris efter att du börjat använda den.  
Titel
Kriterier Bedömningar Poäng
Det här kriteriet är länkat till ett lärandemål Beskrivning av kriterium
tröskel: 5 poäng
Redigera beskrivning av kriterium Ta bort kriterium rad
5 till >0 poäng Full poäng blank
0 till >0 poäng Inga poäng blank_2
Det här området kommer användas av utvärderaren för kommentarer relaterade till det här kriteriet.
poäng
  / 5 poäng
--
Ytterligare kommentarer
Det här kriteriet är länkat till ett lärandemål Beskrivning av kriterium
tröskel: 5 poäng
Redigera beskrivning av kriterium Ta bort kriterium rad
5 till >0 poäng Full poäng blank
0 till >0 poäng Inga poäng blank_2
Det här området kommer användas av utvärderaren för kommentarer relaterade till det här kriteriet.
poäng
  / 5 poäng
--
Ytterligare kommentarer
Poängsumma: 5 av 5
Föregående
Nästa
bonus quiz W2 W3: Flask