SQLObject

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)"
หมวดหมู่:ซอฟต์แวร์