Colors make the world more beautiful.

Schermafdruk van webshop aan het einde van dit hoofdstuk.
In dit hoofdstuk ga je kleuren toevoegen aan elk product. Kleur en product hebben een n:m-relatie.
5.1Uitleg: Tabellen met n:m-relatie maken¶
5.2Opdracht: Voeg artikel-kleuren toe aan de database¶
In deze opdracht ga je kleuren (Engels: colors) toevoegen aan elk artikel in de database. Elk artikel heeft één of meer kleuren. Een kleur wordt gebruikt in één of meer artikelen.
De kleur wordt niet automatisch zichtbaar in je webshop, dat doen we in de volgende opdracht.
Tips
Zie de tips bij de opdracht merken-tabel toevoegen uit het vorige hoofdstuk.
Tips
Zie de tips bij de opdracht merken toevoegen aan de tabel uit het vorige hoofdstuk.
Tips
Voeg de verwijzende sleutels en de constraints toe aan de tabel
product_color.De volgorde waarin je tabellen in je SQL-bestand zet doet ertoe. De tabel
product_colormoet je na de tabellenproductsencolorsmaken, anders dan kun je er niet naar verwijzen in je constraints in de tabelproduct_color.Als je niet meer weet hoe je een constraint toevoegt, bekijk dan Uitleg SQL voorbeeld n:m-relatie
Tips
Maak een
INSERT INTO-opdracht die deproduct_color-tabel vult.Gebruik in de
INSERT INTO-opdracht de veldenproduct_idencolor_id.Geef in je
INSERT INTO-opdracht de nummers van de producten en kleuren die bij elkaar passen op. Elke combinatie is een nieuwe rij in de tabel.
5.3Uitleg: Query met n:m-relatie maken¶
5.4Uitleg: JSON¶
5.5Opdracht: Maak kleuren per artikel zichtbaar in de webshop¶
Je hebt in de vorige opdracht kleur-informatie aan alle artikelen toegevoegd in de database. Maar deze informatie is nog niet te zien op de webshop. Dat komt omdat de API de kleuren niet opvraagt uit de database. Omdat er meerdere kleuren per product kunnen zijn, moeten we de kleuren in een aparte query opvragen. In deze opdracht ga je de API aanpassen, zodat de informatie over kleuren wordt toegevoegd aan de informatie over artikelen die wordt opgestuurd naar de client. De client is zo gemaakt dat hij deze extra informatie automatisch toont.
Tips
De aanpassing moet je doen in de API, in het bestand
/app/main.pybij de functie voor het endpoint/api/products/.Let op de commentaarregel om te zien naar welke plek je het stuk code exact moet kopieren.
De juiste volgorde van de stukken code is# Build the base query# Execute the query# Add values for n:m property (e.g., colors) to products# Return resultIn de query zet je achter
SELECTéén veld, namelijk de naam van de kleur.Voeg aan de query een
JOINtoe tussen de tabellenproduct_colorencolors.Controleer wat de API opstuurt naar de client. Zet in je browser achter de hostname van je webshop
/api/products/en laadt die webpagina. Het antwoord is hetzelfde antwoord als wat de client van de API zou krijgen. Je ziet de artikelinformatie in JSON-formaat.