ホームページ  >  記事  >  バックエンド開発  >  PythonのORMフレームワークSQLObjectの詳細説明

PythonのORMフレームワークSQLObjectの詳細説明

WBOY
WBOYオリジナル
2023-06-10 17:06:071049ブラウズ

Web アプリケーションの普及に伴い、Python は Web 開発の分野でますます広く使用されるようになりました。現在、多くの Python Web フレームワークは、データベースを操作するためのいくつかの ORM フレームワークを提供しています。 SQLObject は、非常に人気があり使いやすい ORM フレームワークの 1 つです。この記事ではSQLObjectフレームワークの使い方を詳しく紹介します。

  1. SQLObject のインストール

pip ツールを使用すると、SQLObject を簡単にインストールできます:

pip install sqlobject
  1. データベースに接続します

最初に sqlobject ライブラリを導入し、connectionForURI メソッドを使用してデータベースに接続します。以下は MySQL データベース接続の例です:

import MySQLdb
from sqlobject import *


connection_string = 'mysql://user:password@localhost/database'
connection = connectionForURI(connection_string)
sqlhub.processConnection = connection

ユーザー、パスワード、ローカルホスト、およびデータベースは実際の値に置き換える必要があります。

  1. モデル クラスの定義

モデル クラスを定義するときは、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 など、いくつかの異なる種類の列を提供します。デフォルト値、一意性、インデックスなど、列の他のプロパティを設定することもできます。

  1. テーブルの作成

データベースにテーブルを作成するには、Python シェルまたはスクリプトにモデル クラスを定義するモジュールを導入し、createTable() メソッドを実行するだけです。 :

from models import Person


Person.createTable()

テーブルが既に存在する場合、再度作成されることはありません。

  1. データの挿入

テーブルにデータを挿入するには、モデル クラスのインスタンスを作成し、各フィールドに値を割り当てるだけです。例:

john = Person(name='John Smith', age=30)

インスタンスをデータベースに保存するには、その save() メソッドを呼び出します:

john.save()

この時点で、person という名前のテーブルがデータベースに作成され、名前がジョン・スミス、30歳の記録。

  1. データのクエリ

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)

    データの更新
データを更新するには、モデル クラス インスタンスの属性値を変更し、その save() メソッドを呼び出すだけです。たとえば、次のコードは John Smith の年齢を 35 歳に変更します。

john.age = 35
john.save()

    データの削除
データを削除するには、モデル クラスの destroySelf() メソッドを呼び出すだけです。インスタンス それです。たとえば、次のコードは John Smith という名前のレコードを削除します。

john.destroySelf()

    summary
SQLObject は、Python Web 開発の操作を大幅に簡素化できる非常に便利な ORM フレームワークです。データベース。この記事では、データベースへの接続、モデル クラスの定義、テーブルの作成、データの挿入、データのクエリ、データの更新、データの削除など、SQLObject の基本的な使用法を紹介します。読者の皆様も、Python Web 開発に SQLObject を試してみていただければ幸いです。

以上がPythonのORMフレームワークSQLObjectの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。