Skip to content

MySQL

Projekt «WebApp»

Hinweis: Installation in Thonny

  • Menupunkt Tools > Manage Packages...
  • Suche nach «mysql-connector»
  • Install klicken

Warnung: Zugriff nur am Gymer

Der Zugriff auf die Datenbank ist nur aus dem Gymer-Netz möglich!

Verbindung herstellen

Mit der Methode mysql.connector.connect() können wir eine Verbindung zu einem MySQL-Server herstellen. Dazu müssen wir den Hostnamen des Servers, den Name und das Passwort des DB-Benutzers und den Namen der Datenbank kennen. Für die Abfrage verlangen wir einen sogenannten cursor.

python
from mysql.connector import connect

mydb = connect(
  host="web3.kinet.ch",
  user="omdb_user",
  database="omdb",
  password="QhPSNctsBRgsYOKEbASI"
)

mycursor = mydb.cursor(named_tuple=True)
mycursor.execute("SELECT * FROM movies WHERE name LIKE '%Titanic%' LIMIT 10")

myresult = mycursor.fetchall()

for x in myresult:
  print(x)
  
mydb.close()

myresult ist eine Liste von «Named Tuples» und kann der template-Funktion von Bottle übergeben werden.

Mit Bottle verwenden

Sinnvollerweise lagert man die Verbindungs-Herstellung in eine separate Funktion aus (z.B. connectDB()). So kann diese von mehreren Routen-Funktionen aufgerufen werden.

python
from bottle import route, run, template
from mysql.connector import connect

def connectDB():
    mydb = connect(
      host="web3.kinet.ch",    
      user="omdb_user",
      database="omdb",
      password="QhPSNctsBRgsYOKEbASI"
    )
    return mydb

@route('/')
def index():
    mydb = connectDB()
    mycursor = mydb.cursor(named_tuple=True)    
    mycursor.execute("SELECT * FROM movies WHERE id=597")

    myresult = mycursor.fetchone()
    
    mydb.close()
    
    print(myresult)
    return template('<b>Hello {{movie.name}}</b>!', movie=myresult)

run(reloader=True, host='localhost', port=8080)

Gymnasium Kirchenfeld, fts & lem