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

Laboration W3: Flask

  • Inlämningsdatum 23 feb 2024 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).

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. Provkör med en webbsida som inte finns. Vad får du för felutskrift?

 

Uppgift 2: Hello world

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).

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: 

  1. Spara programmet horoskop.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. ...och textfilen texter.txt:
    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. Ladda upp bägge på pythonanywhere. Programmet horoskop.py ska ligga i mappen mysite, och filen texter.txt ska ligga i mappen static.
  4. Kopiera horoskop.py till flask_app.py och se om du kan få upp programmet på din webbsida!

Uppgift 4:

  1. Gå till Web i menyn
  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

 

Lämna in

  • Ditt program från uppgift 1.
  • Ditt program från uppgift 3.
  • Länken till din hemsida på  https://eu.pythonanywhere.com/ Links to an external site.

 

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.

Redovisa rester

Om du har labbar, övningar, P-uppgifts-kompletterin/plussning, komplettering av provet eller något annat kvar att redovisa kan du göra det kl 15-17. Stanna kvar i samma sal och köa här:

https://queue.csc.kth.se/Queue/DD1319

I rutan Location till vänster: Skriv vilken dator du sitter vid (t ex Grön-01). I rutan Comment: Skriv vad du vill redovisa, och din grupp (Basilika/Mynta/Timjan/Rosmarin).

 

 

 

1708707600 02/23/2024 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