De keuze is reuze.

Schermafdruk van webshop aan het einde van dit hoofdstuk.
In dit hoofdstuk ga je filters toevoegen aan je webshop. Met filters kun je selecteren welke artikelen getoond worden.
6.1Uitleg: REST-API¶
6.2Opdracht: Toon filters voor merk en kleur¶
De client is al voorbereid voor het werken met filters, maar de API nog niet. In deze opdracht ga je zorgen dat de filters zichtbaar worden in de webshop. In de volgende opdracht zorg je dat alleen de artikelen worden getoond die in het filter zijn ingesteld.
Tips
De code moet worden ingevoeg in de functie
get_filters()
uit de api.Let op het commentaar om de exacte plek te vinden waarnaar je de code moet kopieren.
Tips
De code moet worden ingevoeg in de functie
get_filters()
uit de api.Let op het commentaar om de exacte plek te vinden waarnaar je de code moet kopieren.
Maak beide SQL-queries in de code af.
6.3Uitleg: Extra gegevens in een request¶
6.4Opdracht: Laat filters op merk en kleur werken¶
De client van de webshop stuurt het filter als query-parameter mee naar het endpoint /api/products
als op de knop Filter toepassen
geklikt wordt. Om alleen de artikelen terug te sturen die aan het filter voldoen, moet je in de API een WHERE
-clausule toe voegen aan het SELECT
-commando dat de artikel-informatie uit de database ophaalt. Bekijk de tabel om te zien hoe het filter uiteindelijk moet gaan werken.
Werking van filter
Smurf Mania | Totally Smurf | rood | geel | blauw | getoonde artikelen | WHERE-clausule |
---|---|---|---|---|---|---|
☐ | ☐ | ☐ | ☐ | ☐ | alle artikelen | geen |
☑ | ☐ | ☐ | ☐ | ☐ | artikelen van Smurf Mania, de kleur maakt niet uit | WHERE merk IN ("Smurf Mania") |
☑ | ☑ | ☐ | ☐ | ☐ | artikelen van (Smurf Mania of Totally Smurf), de kleur maakt niet uit | WHERE merk IN ("Smurf Mania", "Totally Smurf") |
☐ | ☐ | ☑ | ☐ | ☐ | artikelen met rood, het merk maakt niet uit | WHERE kleur IN ("rood") |
☑ | ☐ | ☑ | ☐ | ☐ | artikelen van Smurf Mania met rood | WHERE merk IN ("Smurf Mania") AND kleur IN ("rood") |
☑ | ☑ | ☐ | ☑ | ☑ | artikelen van (Smurf Mania of Totally Smurf) met (geel of blauw) | WHERE merk IN ("Smurf Mania", "Totally Smurf") AND kleur IN ("geel", "blauw") |
Je gaat het filter stap voor stap maken in a) tot en met d) van deze opdracht. Je moet daarbij SQL en Python-code toevoegen aan de API. Breidt je database uit als dat nodig is om alle combinaties te kunnen testen.
Tips
De code moet net als bij de vorige opdracht worden ingevoeg in de functie
get_filters()
uit de api.De exacte plek voor de code is nadat de basis query met
SELECT
wordt gemaakt en vóórdat de query wordt uitgevoerd (execute)
Tips
gebruik de volgene for-loop voor het tweede tot en met het laatste merk:
for i in range(1, len(brand_filter_values)):
Tips
kopieer de code voor merken en pas de variabelen aan, zodat het werkt voor kleuren.
vergeet de aanpassing in regel 1 niet
let op het verschil tussen regel 1 (
or
) en regel 13 (and
)