Vad lärde du dig i den förra lektionen?
I den förra lektionen så gick vi igenom grunderna i hur man kan skapa en hemsida med Python. Nu ska vi lära oss fler saker som stöds av modulen vi använder för att skapa hemsidor: Flask.
Vad ska du lära dig i denna lektion?
Du kommer att få lära dig hur du kan använda Flask för att skicka filer från din dator, vilket är väldigt bra om du t.ex. vill göra så att användare kan ladda ner t.ex. ett textdokument. Du kommer även att få lära dig hur du kan skicka användare vidare till en annan sida på hemsidan.
Skicka filer från hemsidan:
Flask har en inbyggd funktion som heter send_file som du kan använda för att skicka filer så att användaren kan ladda ner dem direkt. I de flesta fall så laddas filerna ned till din datorn, men ibland kan du behöva välja "Spara länkad fil som..." eller liknande för att ladda ner filerna.
Innan vi börjar med att skicka filer så ska vi titta på hur hemsidor kan skicka filer. Istället för att visa innehåll som t.ex denna hemsida så skickar webbservern som hemsidan är på en fil till användarens dator, oftast utan att den visar något vanligt sidinnehåll eller innan den visar något annat innehåll. Här är exempel på några direktnedladdningslänkar med olika filtyper:
Samtliga länkar nedan kontrolleras av KlassKlur och är ej farliga eller innehåller virus.
Nedladdningslänk för ett textdokument.
Nedladdningslänk för ett av våra läromedel.
Nedladdningslänk för en bild.
Samtliga länkar nedan kontrolleras av KlassKlur och är ej farliga eller innehåller virus.
Nedladdningslänk för ett textdokument.
Nedladdningslänk för ett av våra läromedel.
Nedladdningslänk för en bild.
Nu ska vi börja med att skapa den kod som krävs för att skicka själva filen till användaren. För att göra det behöver vi använda oss av Flask´s funktion send_file som vi måste importera från Flask:
Denna kod importerar "send_file" från Flask:
Efter att vi gjort detta så behöver vi använda oss av den grundläggande koden för att skapa en Flask-hemsida där alla komponeter initieras. Om du lägger till denna funktionalitet i en redan skapad hemsida så behöver du inte göra detta igen. "Bas-koden" ser ut så här:
"Bas-kod" för ett projekt med Flask:
Ovanför "if __name__ == "__main__":" kan du nu skapa en sida på hemsidan, vilken som helst. Detta visar vi hur man gör i lektionen "Skapa en hemsida med Python del 1" inom Programmering.
När du skapat en sida så använder du dig förmodligen av "return" på slutet. För att skicka filer så använder du sig av send_file() ungefär som du gör med render_template(), vilket vi gick igenom i förra lektionen.
Funktionsparametrarna i send_file() ser dock lite annorlunda ut. Du måste hitta filen och kopiera dess sökväg för att sedan klistra in den i själva send_file() funktionen. Detta gör du genom att hitta filen, högerklicka på den och välja "Kopiera sökväg..." eller liknande. Denna hemsida har bra instruktioner för hur du gör detta: www.pcworld.com/article/251406/windows_tips_copy_a_file_path_show_or_hide_extensions.html (hemsidan är på Engelska).
När du har kopierat filens sökväg, klistra in den i en textsträng på detta sätt:
Funktionsparametrarna i send_file() ser dock lite annorlunda ut. Du måste hitta filen och kopiera dess sökväg för att sedan klistra in den i själva send_file() funktionen. Detta gör du genom att hitta filen, högerklicka på den och välja "Kopiera sökväg..." eller liknande. Denna hemsida har bra instruktioner för hur du gör detta: www.pcworld.com/article/251406/windows_tips_copy_a_file_path_show_or_hide_extensions.html (hemsidan är på Engelska).
När du har kopierat filens sökväg, klistra in den i en textsträng på detta sätt:
Kod för att skicka en fil med Flask:
Och så enkelt var det! Nu har du lärt dig att skicka filer med hjälp av Flask!