flasksida.py

Övningen är skapad 2026-05-25 av Jonte10Charlie. Antal frågor: 45.




Välj frågor (45)

Vanligtvis används alla ord som finns i en övning när du förhör dig eller spelar spel. Här kan du välja om du enbart vill öva på ett urval av orden. Denna inställning påverkar både förhöret, spelen, och utskrifterna.

Alla Inga

  • 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

Alla Inga

Utdelad övning

https://glosor.eu/ovning/flasksida-py.12987734.html