CommencerCommencer gratuitement

Créer des tables avec SQLAlchemy

Précédemment, vous avez utilisé l’objet Table pour refléter une table depuis une base de données existante. Mais si vous souhaitez créer une table nouvelle ? Vous utiliseriez toujours l’objet Table, mais vous devez remplacer les paramètres autoload et autoload_with par des objets Column.

L’objet Column prend un nom, un type SQLAlchemy avec un format optionnel, ainsi que des arguments nommés facultatifs pour différentes contraintes.

Lors de la définition de la table, rappelez-vous que, dans la vidéo, Jason a passé 255 comme longueur maximale d’une chaîne en utilisant Column('name', String(255)). Jeter un œil aux diapositives de la vidéo peut vous aider.

Après avoir défini la table, vous pouvez la créer dans la base de données en utilisant la méthode .create_all() sur les métadonnées et en fournissant le moteur comme unique paramètre. À vous de jouer !

Cet exercice fait partie du cours

Introduction aux bases de données en Python

Afficher le cours

Instructions

  • Importez Table, Column, String, Integer, Float, Boolean depuis sqlalchemy.
  • Créez une nouvelle table appelée data avec les colonnes 'name' (String(255)), 'count' (Integer()), 'amount' (Float()), et 'valid' (Boolean()). Le deuxième argument de Table() doit être metadata, qui a déjà été initialisé.
  • Créez la table dans la base de données en passant engine à metadata.create_all().

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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))
Modifier et exécuter le code