Kmom01: Kom igång med objekt och Flask

By . Latest revision .

Vi ska börjar kursen med grunderna om objekt och klasser. Vid sidan av ska vi arbeta med ett mini-ramverk, “Flask”. Vi kommer jobba mer med Flask-appen genom kursens gång, samt titta på mer tekniker och strukturer angående objektorienterad programmering.

Gör dbwebb update och dbwebb init innan ni börjar jobba med kursmomentet.

En enkel me-sida med Flask.

En enkel me-sida med Flask.

(Detta är instruktionen för kursmomentet och omfattar det som skall göras inom ramen för kursmomentet. Momentet omfattar cirka 20 studietimmar inklusive läsning, arbete med övningar och uppgifter, felsökning, problemlösning, redovisning och eftertanke. Läs igenom hela kursmomentet innan du börjar jobba. Om möjligt – planera och prioritera var du vill lägga tiden.)

#Labbmiljön

(ca: 2-4 studietimmar)

Det finns en längre beskrivning om kursens labbmiljö. Läs den om du är osäker på vad som skall göras, eller om detta är din första dbwebb-kurs.

Den korta varianten är att du behöver installera labbmiljön, uppdatera dbwebb-cli samt klona och initiera kursrepot.

# Gå till din katalog för dbwebb-kurser
dbwebb selfupdate
dbwebb clone oopython
cd oopython
dbwebb init

#Läsanvisningar

(ca: 8-10 studietimmar)

#Kurslitteratur

Läs följande:

  1. Python 3 Object-oriented Programming
    • Ch 1 - Object-oriented Design
      • Introducing object-oriented — Specifying attributes and behaviors.
    • Ch 2 - Objects in Python
      • Creating Python classes

#Artiklar

Läs följande:

  1. Fräscha upp minnet med Python 3.x Doc. Kika runt lite och orientera dig.

  2. Titta på Flasks hemsida. Försök få en snabb överblick av vad Flask är.

Följande artiklar är korta och bra att läsa:
1. Motivation for obejct-oriented.

  1. The object-oriented paradigm.

  2. Naming conventions.

  3. Messaging.

  4. Abstraction and identity.

#Video

Titta på följande:

  1. Videoserien Lär dig objektorienterad Python är tätt kopplat till kursmaterialet. Kika på de videor som börjar med 1.

  2. Titta på följande videos om Flask av “TheNewBoston”:

  3. Titta på de första 7-minuterna av Object-oriented programming.

  4. Tips från en tidigare student på en bra video What is object-oriented programming?.

#Lästips

Om du känner att du har tid och lust.

  1. Python 3 Object-oriented Programming

    • Ch 4 - Expecting the Unexpected.
  2. Kika på Jinja2’s dokumentation.

#Övningar & Uppgifter

(ca: 8-10 studietimmar)

#Labbmiljö

Installera labbmiljön för kursen.

  1. Installera labbmiljön som behövs för kursen.

  2. Installera kommandot dbwebb samt kursrepot för kursen.

Om detta är din första dbwebb-kurs så läser du också igenom hela manual-sidan för kommandot dbwebb.

#Övningar

Genomför följande övning för att träna dig.

  1. Läs på om “UML och klassdiagram”.

  2. Läs igenom “Intro till guiden” och “Objekt och klasser” i guiden “Kom igång med objektorienterad programmering i Python”.

  3. Läs igenom artikeln om enhetstester “Introduktion till enhetstester”.

Tips från coachen, gör lab1 innan ni fortsätter med resten av övningarna.

  1. Introducera dig själv med pip och venv, “Python pakethantering med venv”.

  2. Kom igång och gör din första webbapplikation i Python tillsammans med övningen “Flask och Jinja2”.

  3. Gör din Flask applikation som ett CGI-skript och publicera på studentservern med dbwebb publish. Ni behöver inte göra sista delen Lägg till CGI i Apache webbserver för detta behöver bara fungera på studentservern, alltså inte lokalt.

#Uppgifter

Dessa uppgifter skall utföras och redovisas.

  1. Gör uppgiften “Python med objekt och klasser” (lab 1)

  2. Gör uppgiften “Grunden för ett Yahtzee spel”.

#Extra

Det finns inga extrauppgifter.

#Lämna in

Läs Lämna in och redovisa uppgift för att ta reda på hur ni lämna in era uppgifter när ni är klara.

#Revision history

  • 2022-01-14: (C, aar, grm) Bytt uppgift och lagt till övningar.
  • 2018-11-16: (B, aar) Uppdaterat länkar och redv. frågor.
  • 2017-11-10: (PB1, mos) Utkast till v2.
  • 2017-01-06: (A, mos) Lade till CGI på studentservern.

Document source.