การสร้างตารางด้วย SQLAlchemy
ก่อนหน้านี้ คุณใช้ออบเจ็กต์ Table เพื่อดึงโครงสร้างตารางจากฐานข้อมูลที่มีอยู่แล้ว
แต่ถ้าต้องการสร้างตารางใหม่ล่ะ? ก็ยังคงใช้ออบเจ็กต์ Table เช่นเดิม
แต่จะต้องแทนที่พารามิเตอร์ autoload และ autoload_with ด้วยออบเจ็กต์ Column
ออบเจ็กต์ Column รับชื่อคอลัมน์ ประเภทข้อมูลของ SQLAlchemy พร้อม format เสริม และ keyword argument เพิ่มเติมสำหรับกำหนด constraint ต่าง ๆ
เมื่อนิยามตาราง ให้นึกถึงตัวอย่างในวิดีโอที่ Jason ส่ง 255 เป็นความยาวสูงสุดของ String โดยใช้ Column('name', String(255)) ลองดูสไลด์จากวิดีโอเพื่อช่วยอ้างอิงได้
เมื่อนิยามตารางเรียบร้อยแล้ว สามารถสร้างตารางในฐานข้อมูลได้โดยใช้เมธอด .create_all() บน metadata และส่ง engine เป็นพารามิเตอร์เพียงตัวเดียว ลองทำเลย!
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Python เบื้องต้นสำหรับฐานข้อมูล
คำแนะนำการฝึกหัด
- Import
Table,Column,String,Integer,Float,Booleanจากsqlalchemy - สร้างตารางใหม่ชื่อ
dataที่มีคอลัมน์'name'(String(255)),'count'(Integer()),'amount'(Float()) และ'valid'(Boolean()) โดย argument ตัวที่สองของTable()ต้องเป็นmetadataซึ่งได้ถูก initialize ไว้แล้ว - สร้างตารางในฐานข้อมูลโดยส่ง
engineให้กับmetadata.create_all()
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 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))