CommencezCommencez gratuitement

Créer des tables avec SQLAlchemy

Plus tôt, vous avez utilisé l'objet Table pour refléter une table à partir d'une base de données existante. Mais si vous voulez créer une nouvelle table? Vous utiliseriez encore l'objet Table; toutefois, vous devrez remplacer les paramètres autoload et autoload_with par des objets Column.

L'objet Column prend un nom, un type SQLAlchemy avec un format facultatif, ainsi que des paramètres nommés facultatifs pour différentes contraintes.

Lorsque vous définissez la table, rappelez-vous comment, dans la vidéo, Jason a indiqué 255 comme longueur maximale d'une chaîne en écrivant Column('name', String(255)). Jeter un coup d'œil au diaporama 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 appelant la méthode .create_all() sur metadata et en fournissant engine comme seul paramètre. À vous de jouer!

Cette activité fait partie du cours

Introduction aux bases de données en Python

Voir le cours

Instructions de l’exercice

  • 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 ce code d’exemple.

# 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