隨著Web應用的廣泛普及,Python在Web開發領域的應用也越來越廣泛。現今許多Python Web Framework都提供了一些ORM框架用於操作資料庫。 SQLObject是其中一個非常流行、容易使用的ORM框架。本文將詳細介紹SQLObject框架的使用方法。
使用pip工具可以很方便地安裝SQLObject:
pip install sqlobject
import MySQLdb from sqlobject import * connection_string = 'mysql://user:password@localhost/database' connection = connectionForURI(connection_string) sqlhub.processConnection = connection其中的user、password、localhost和database應替換為實際值。
class Person(SQLObject): name = StringCol(length=100) age = IntCol(default=0)Person類別包含兩個欄位:name和age。 name是長度為100的字串類型,age是整數類型,初始值為0。 SQLObject提供了幾種不同類型的列,包括StringCol、IntCol、FloatCol、DecimalCol、BoolCol、DateCol、DateTimeCol和TimeCol等。還可以設定列的其他屬性,如預設值、唯一性、索引等。
from models import Person Person.createTable()若表已存在,則不會再次建立。
john = Person(name='John Smith', age=30)要將實例儲存到資料庫中,呼叫其save()方法:
john.save()此時,將在資料庫中建立名為person的表,並插入一條名為John Smith、年齡為30的記錄。
people = Person.select() for person in people: print(person.name, person.age)此程式碼將遍歷Person表中的每個記錄,並輸出它們的name和age欄位值。 (2)依條件篩選記錄要依條件篩選記錄,可以在select()方法中傳入一個SQLExpression物件。例如,以下程式碼將得到年齡大於等於30的所有人:
people = Person.select(Person.age >= 30) for person in people: print(person.name, person.age)同樣地,可以使用d2714fbb0e49a95306c2048bc19e4f2b、>=、==和!=等運算子進行比較。 (3)按字段排序要按字段排序,可以在select()方法中傳入一個OrderBy子句。例如,以下程式碼會依照age欄位升序排列:
people = Person.select(orderBy=Person.age) for person in people: print(person.name, person.age)若要降序排序,可以在欄位名稱前加一個負號,例如:
people = Person.select(orderBy=-Person.age)
john.age = 35 john.save()
john.destroySelf()
以上是Python中的ORM框架SQLObject詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!