🐍

Flask och MySQL med Northwind-databas

Nov 26, 2024

Flask och MySQL med Northwind-databas

Inledning

  • Syfte: Demonstrera hur man sĂ€tter upp Python med Flask mot en MySQL-databas (Northwind).
  • Relevans: SvĂ„rt att koppla kursen till Python, men detta Ă€r ett steg i rĂ€tt riktning.

Förberedelser

  • Installation och krav:

    • Skapa en mapp och öppna i Visual Studio Code.
    • Inkludera nödvĂ€ndiga paket:
      • python-dotenv för miljövariabler.
      • Flask för webbapplikationen.
      • Flask-MySQL för integrering med MySQL.
      • MySQL-klient.
    • Skapa requirements.txt för att lista dessa paket.
  • Miljövariabler:

    • Skapa en .env-fil med variabler:
      • DB_HOST, DB_USER, DB_PASSWORD, DB_NAME.

Python-filstruktur

  • Skapa api.py och importera:
    • os, json, Flask, Flask-MySQL.

Konfigurera Flask-applikationen

  • StĂ€ll in applikationens konfiguration:
    • app.config för MySQL instĂ€llningar: host, user, password, database.

Skapa API-routes

Root och Dokumentation

  • Route för root (/) som visar API-dokumentation.
  • Funktion för att ladda och returnera JSON-dokumentation.

HĂ€mta produkter

  • Alla produkter:

    • Route /products med metod GET.
    • AnvĂ€nd SELECT * FROM products för att hĂ€mta alla produkter.
  • En specifik produkt:

    • Route /products/<product_id>.
    • AnvĂ€nd SELECT * FROM products WHERE product_id = %s.
    • Hantera om produkten inte finns (404).

LĂ€gg till en ny produkt

  • Route /products med metod POST.
  • AnvĂ€nd INSERT INTO products(...) VALUES (...) för att lĂ€gga till produkter.
  • Hantera JSON-data frĂ„n requesten.

Uppdatera en produkt

  • Route /products/<product_id> med metod PUT.
  • AnvĂ€nd UPDATE products SET ... WHERE product_id = %s för att uppdatera en produkt.

Ta bort en produkt

  • Route /products/<product_id> med metod DELETE.
  • AnvĂ€nd DELETE FROM products WHERE product_id = %s för att ta bort en produkt.

Test och Verifiering

  • AnvĂ€nd Postman för att testa POST och PUT, eftersom dessa inte kan testas direkt i webblĂ€saren.
  • Kontrollera i databasen att produkten har lagts till eller uppdaterats korrekt.

Avslutning

  • API kopplat till Northwind fungerar.
  • Vid frĂ„gor, kontakta via Discord.
  • Tack för deltagandet!