Hier ein möglicher technischer Ablauf einer Sucheingabe nach einer Serie:
- (1)
- Der Benutzer gibt im Browser im Suchfeld den Begriff «lost» ein.
- Durch das html-Formular wird die URL
/search
aufgerufen und der eingegebene Begriff mit dem Namenq
als Query-String an die URL angehängt. - (2)
- Der Webserver (Bottle) extrahiert in der Route
search
den Querystringq
und erhält so den Suchbegriff als Python-Variable. - (3)
- Der Webserver liefert die Zugriffsdaten an
mysql.connector
um eine Verbindung zur DB aufzubauen. - (4)
mysql.connector
überprüft, ob die DB besteht und Zugriff erlaubt ist.- (5)
- Zugriff ist erlaubt
- (6)
- Der Webserver erhält ein gültiges Datenbank-Objekt und kann darauf eine «cursor» erzeugen.
- (7)
- Der Webserver baut aus der Sucheingabe (in einer Variablen) und einem festen Teil ein SQL-Select als String vor.
- z.B.
SELECT * from movies WHERE TITLE LIKE %lost%
- (8)
- über die MySQL-Verbindung kann mit
execute
nun das SQL-Select-Statement an die DB geschickt werden. - (9)
- Das MySQL-Module schickt die Anfrage an die eigentliche DB weiter.
- (10)
- Die DB liefert die Ergebnisse ans MySQL-Modul zurück.
- (11)
- Die Ergebnisse werden z.B. mit
fetchall()
– je nach Cursor-Typ – umgewandelt in einen von Python lesbaren Datentyp. - (12)
- Die Ergebnisse können mit Python bearbeitet und z.B. mit
template
in HTML-Code umgewandelt werden. - (13)
- Bottle schickt den generierten HTML-Code mit dem
return
der Route zurück an den Browser des Benutzers.