Web アプリケーションの普及に伴い、Python は Web 開発の分野でますます広く使用されるようになりました。現在、多くの Python Web フレームワークは、データベースを操作するためのいくつかの ORM フレームワークを提供しています。 SQLObject は、非常に人気があり使いやすい ORM フレームワークの 1 つです。この記事ではSQLObjectフレームワークの使い方を詳しく紹介します。
pip ツールを使用すると、SQLObject を簡単にインストールできます:
pip install sqlobject
最初に sqlobject ライブラリを導入し、connectionForURI メソッドを使用してデータベースに接続します。以下は MySQL データベース接続の例です:
import MySQLdb from sqlobject import * connection_string = 'mysql://user:password@localhost/database' connection = connectionForURI(connection_string) sqlhub.processConnection = connection
ユーザー、パスワード、ローカルホスト、およびデータベースは実際の値に置き換える必要があります。
モデル クラスを定義するときは、SQLObject クラスを継承する必要があります。以下は、Person クラスの簡単な定義の例です。
class Person(SQLObject): name = StringCol(length=100) age = IntCol(default=0)
Person クラスには、name と age の 2 つのフィールドが含まれています。 name は長さ 100 の文字列型で、age は初期値 0 の整数型です。 SQLObject は、StringCol、IntCol、FloatCol、DecimalCol、BoolCol、DateCol、DateTimeCol、TimeCol など、いくつかの異なる種類の列を提供します。デフォルト値、一意性、インデックスなど、列の他のプロパティを設定することもできます。
データベースにテーブルを作成するには、Python シェルまたはスクリプトにモデル クラスを定義するモジュールを導入し、createTable() メソッドを実行するだけです。 :
from models import Person Person.createTable()
テーブルが既に存在する場合、再度作成されることはありません。
テーブルにデータを挿入するには、モデル クラスのインスタンスを作成し、各フィールドに値を割り当てるだけです。例:
john = Person(name='John Smith', age=30)
インスタンスをデータベースに保存するには、その save() メソッドを呼び出します:
john.save()
この時点で、person という名前のテーブルがデータベースに作成され、名前がジョン・スミス、30歳の記録。
SQLObject には、データベース内のデータをクエリするためのメソッドが多数用意されています。一般的に使用されるメソッドの例をいくつか次に示します。
(1) すべてのレコードを取得する
Person テーブル内のすべてのレコードを取得するには、Person クラスの select() メソッドを呼び出します。 ##
people = Person.select() for person in people: print(person.name, person.age)このコードは、Person テーブルの各レコードを反復処理して、名前と年齢フィールドの値を出力します。 (2) 条件でレコードをフィルターする条件でレコードをフィルターするには、select() メソッドで SQLExpression オブジェクトを渡すことができます。たとえば、次のコードは、年齢が 30 歳以上の全員を取得します:
people = Person.select(Person.age >= 30) for person in people: print(person.name, person.age)同様に、d2714fbb0e49a95306c2048bc19e4f2b、>=、==、! などの演算子を使用できます。 = 比較用。 (3) フィールドによる並べ替えフィールドごとに並べ替えるには、select() メソッドで OrderBy 句を渡すことができます。たとえば、次のコードは年齢フィールドを昇順で並べ替えます:
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 中国語 Web サイトの他の関連記事を参照してください。