flasksida.py

The exercise was created 2026-05-25 by Jonte10Charlie. Question count: 45.




Select questions (45)

Normally, all words in an exercise is used when performing the test and playing the games. You can choose to include only a subset of the words. This setting affects both the regular test, the games, and the printable tests.

All None

  • Flask skapar webbapplikationen
  • render_template läser html-filer och skickar data till dem
  • request hämtar data som skickas från formulär
  • redirect skickar användaren till en annan URL
  • pymysql kopplar Python till MySQL-databasen
  • get_db_connection() funktion som skapar anslutning till databasen
  • pymysql-connect() öppnar själva databasanslutningen
  • host='localhost' databasen finns på samma dator
  • user='root' användarnamn för MySQL
  • password='' lösenord för MySQL (tomt här)
  • db='dogbook' namnet på databasen som används
  • DictCursor gör resultat till dictionary (kolumnnamn -> värde)
  • @app-route("/") dekorator som säger "kör denna funktion när någon går till /"
  • @app.route("/hundar") körs vid hundar
  • @app.route("/login", methods=["GET", "POST"]) körs vid login, tillåter både visa (GET) och skicka (POST)
  • @app.route("/personer_med_hundar") körs vid personer_med_hundar
  • @app.route("/add", methods=["GET", "POST"]) körs vid add, tillåter både visa (GET) och skicka (POST)
  • @app.route("/byte", methods=["GET", "POST"]) körs vid byte, tillåter både visa (GET) och skicka (POST)
  • db.cursor() skapar ett verktyg för att köra SQL-kommandon
  • cursor.execute("SQL-kommando") kör ett SQL-kommando
  • cursor.fetchall() hämtar alla rader från SQL-frågan
  • cursor.fetchone() hämtar endast en rad från SQL-frågan
  • cursor.lastrowid hämtar ID:t på den senast insatta raden
  • db.commit() sparar ändringarna i databasen
  • db.close() stänger databasanslutningen
  • request.method == "POST" kollar om formulär har skickats
  • request.form.get("action") hämtar värdet från ett osynligt fält
  • request.form["namn"] hämtar specifikt fält från formuläret
  • return redirect(url_for('index')) skickar användaren till startsidan
  • return render_template("index.html", personer=results) visar index sidan och skickar med data
  • return render_template("login.html") visar bara login sidan utan extra data
  • message = None skapar en tom variabel för bekräftelsemeddelande
  • error = None skapar en tom variabel för felmeddelande
  • if name == "main" kollar att filen körs direkt (inte importeras)
  • app.run(debug=True) startar servern med automatisk uppdatering
  • cursor.execute("SELECT * FROM personer WHERE namn = %s", (namn, )) Frågar databasen efter alla personer med angivet namn (för att sedan kontrollera lösenord)
  • if user and user['losen'] == losen: Kontrollerar om en användare hittades och att det lagrade lösenordet matchar det angivna
  • cursor.execute("SELECT h.* FROM hundar h JOIN agare a ON h.id = a.hundId WHERE a.personid = %s", (person['id'], )) En SQL-join som hämtar alla hundar som en specifik person äger. Tabellen agare är en kopplingstabell som binder ihop personer med hundar.
  • personer_med_hundar.append({'id': ..., 'hundar': hundar}) Lägger till en person (med sina hundar) i en Python-lista.
  • cursor.execute("INSERT INTO personer (namn, losen) VALUES (%s, %s)", (namn, losen)) Lägger till en ny rad i tabellen personer. Namnet och lösenordet som användaren angav i ett registreringsformulär sparas i databasen.
  • cursor.execute("SELECT * FROM personer WHERE id = %s", (ny_agare_id, )) Efter att man skapat en ny person (eller fått ett ID från användaren), hämtas hela personraden för att verifiera att den nya ägaren faktiskt finns i systemet och för att kunna hämt
  • if not ny_agare: Om ingen person hittades med det ID:et, sätts ett felmeddelande.
  • elif not hund: Om hunden inte finns, sätts ett annat felmeddelande
  • cursor.execute("UPDATE agare SET personid = %s WHERE hundid = %s", (ny_agare_id, hund_id)) Ändrar ägarskapet för en hund i kopplingstabellen agare. Detta är en uppdatering – man byter ut den gamla personens ID mot den nya ägarens ID för den specifika hunden
  • message = f"Hunden '{hund_namn['namn']}' har nu {agare_namn['namn']} som ny ägare!" Skapar en användarvänlig textsträng som bekräftar att ägarbytet lyckats. F-strängen i Python sätter in hunden och den nya ägarens namn direkt i meddelandet

All None

Shared exercise

https://spellic.com/eng/exercise/flasksida-py.12987734.html