Tworzenie tabel za pomocą SQLAlchemy
Wcześniej korzystałeś z obiektu Table, aby odwzorować tabelę z istniejącej bazy danych – ale co zrobić, gdy chcesz utworzyć nową tabelę? Nadal używasz obiektu Table, jednak zamiast parametrów autoload i autoload_with przekazujesz obiekty Column.
Obiekt Column przyjmuje nazwę, typ SQLAlchemy z opcjonalnym formatem oraz opcjonalne argumenty słów kluczowych definiujące różne ograniczenia.
Przy definiowaniu tabeli warto pamiętać, że maksymalną długość ciągu znaków określa się przez Column('name', String(255)) – tak jak Jason pokazał to w filmie. Możesz też zajrzeć do slajdów z lekcji.
Po zdefiniowaniu tabeli utwórz ją w bazie danych, wywołując metodę .create_all() na obiekcie metadata i podając silnik jako jedyny argument. Do dzieła!
To ćwiczenie jest częścią kursu
Wprowadzenie do baz danych w Pythonie
Instrukcje do ćwiczenia
- Zaimportuj
Table,Column,String,Integer,Float,Booleanzsqlalchemy. - Utwórz nową tabelę o nazwie
dataz kolumnami:'name'(String(255)),'count'(Integer()),'amount'(Float()) oraz'valid'(Boolean()). Drugi argument funkcjiTable()powinien być równymetadata– ten obiekt został już wcześniej zainicjalizowany. - Utwórz tabelę w bazie danych, przekazując
enginedometadata.create_all().
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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))