SQLObject เป็นตัวส่งระหว่างโมเดลเชิงวัตถุและเชิงสัมพันธ์ระหว่างฐานข้อมูลเอสคิวแอลและวัตถุภาษาไพทอน SQLObject ได้รับความนิยมในชุมชนผู้ใช้และยังเป็นส่วนหนึ่งของโครงการอื่นๆ (เช่น เทอร์โบเกียร์) SQLObject คล้ายกับ Active Record ของ Ruby On Rails มาก ในการดำเนินการ SQLObject ใช้นิยามของคลาสเพื่อกำหมดรูปแบบของตารางซึ่งสมบัติการสะท้อนและความไดนามิกมีประโยชน์มาก

SQLObject ใช้ได้กับโปรแกรมฐานข้อมูลที่เป็นที่นิยมหลายโปรแกรม ได้แก่ MySQL PostgreSQL SQLite Sybase SQL Server MaxDB Microsoft SQL Server และ Firebird

SQLObject เป็นซอฟต์แวร์เสรีที่มีสัญญาอนุญาตแบบ LGPL

ตัวอย่างการใช้งาน แก้

  • การนิยามคลาส (ที่กำหนดรูปแบบของตารางในโมเดลเชิงสัมพันธ์)
from sqlobject import *
# กำหนด URI ของฐานข้อมูล ซึ่งในที่นี้ใช้ SQLite
connection = connectionForURI ('sqlite:///Users/vee/dict.sqlite')
sqlhub.processConnection = connection
# นิยามของคลาส
class Dict (SQLObject) :
    data = StringCol ()
    oldId = StringCol ()
    lang = StringCol ()


  • การสร้างตารางตามนิยามคลาส
Dict.createTable ()

คำสั่งภาษาเอสคิวแอลที่ตรงกับคำสั่งที่ใช้สร้างตารางข้างต้น

CREATE TABLE dict (
    id INTEGER PRIMARY KEY,
    data TEXT,
    old_id TEXT,
    lang TEXT
) ;
  • การสร้างวัตถุใหม่
dict = Dict (oldId=23, lang="Thai", data="(แมว,Cat)")

ตารางเชิงสัมพันธ์ที่ตรงกับวัตถุข้างต้น

id 1
data (แมว,Cat)
lang Thai
old_id 23
  • การใช้งานวัตถุฐานข้อมูล
# การค้นคืน
dict = Dict.get (1)
# การอ่านข้อมูล
print dict.data
# การเขียนข้อมูล
dict.data = "(แมว, cat)"