Tabellen maken met SQLAlchemy
Eerder gebruikte je het Table-object om een tabel uit een bestaande database te reflecteren, maar wat als je een nieuwe tabel wilt maken? Dan gebruik je nog steeds het Table-object; je vervangt alleen de parameters autoload en autoload_with door Column-objecten.
Het Column-object neemt een naam, een SQLAlchemy-type met een optioneel formaat, en optionele keyword-argumenten voor verschillende constraints.
Toen de tabel werd gedefinieerd, liet Jason in de video zien hoe hij 255 doorgaf als de maximale lengte van een String met Column('name', String(255)). Het kan helpen om de dia's uit de video erbij te pakken.
Na het definiëren van de tabel kun je de tabel in de database aanmaken met de methode .create_all() op metadata, waarbij je de engine als enige parameter meegeeft. Aan de slag!
Deze oefening maakt deel uit van de cursus
Introductie tot databases in Python
Oefeninstructies
- Importeer
Table,Column,String,Integer,Float,Booleanuitsqlalchemy. - Bouw een nieuwe tabel
datamet de kolommen'name'(String(255)),'count'(Integer()),'amount'(Float()), en'valid'(Boolean()). Het tweede argument vanTable()moetmetadatazijn, dat al is geïnitialiseerd. - Maak de tabel in de database door
enginedoor te geven aanmetadata.create_all().
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Import Table, Column, String, Integer, Float, Boolean from sqlalchemy
from sqlalchemy import ____, ____, ____, ____, ____, ____
# Define a new table with a name, count, amount, and valid column: data
data = Table('data', ____,
Column(____, ____),
Column('count', Integer()),
Column(____, ____),
Column(____, ____)
)
# Use the metadata to create the table
metadata.create_all(____)
# Print table details
print(repr(data))