本記事では、Djangoを使用してOB Cloudクラウドデータベースに接続し、テーブルの作成、データの挿入、更新、クエリなどの基本的なデータベース操作を実行する方法について紹介します。
前提条件
- Python 3.xとpipがインストール済みであること。
- OB Cloudクラウドデータベースのアカウントに登録済みであり、クラスタインスタンスとOB Cloud MySQL互換モードのテナントを作成していること。詳細については、クラスタインスタンスの作成およびテナントの作成をご参照ください。
操作手順
- OB Cloudクラウドデータベースの接続文字列を取得します。
- DjangoとMySQLクライアントライブラリをインストールします。
- Djangoプロジェクトとアプリケーションを作成します。
- データベース接続を設定します。
- モデルを作成します。
- 移行を実行します。
- ビューとURL設定を作成します。
- 開発サーバーを起動します。
ステップ1:OB Cloudクラウドデータベースの接続文字列を取得する
OB Cloudクラウドコンソールにログインします。インスタンス一覧ページで、対象インスタンスの情報を展開し、対象テナントで、接続 > 接続文字列を取得 を選択します。
詳細な操作については、接続文字列の取得をご参照ください。
作成済みのOB Cloudクラウドデータベースに基づいて、以下のURLに対応する情報を入力します。
obclient -h$host -P$port -u$user_name -p$password -D$database_nameパラメータ説明:
$host:OB Cloudクラウドデータベースの接続アドレスを指定します。例:t********.********.oceanbase.cloud。$port:OB Cloudクラウドデータベースの接続ポートを指定します。デフォルトは3306です。$database_name:アクセスするデータベース名を指定します。
注意
テナントに接続するユーザーは、データベースに対する
CREATE、INSERT、UPDATE、SELECT権限が付与されていなければなりません。アカウント権限の詳細については、アカウントの作成と管理をご参照ください。$user_name:データベースへのアクセスアカウントを指定します。$password:アカウントのパスワードを指定します。
例:
obclient -h t********.********.oceanbase.cloud -P3306 -u mysql001 -p****** -Dtest
ステップ2:DjangoとMySQLクライアントライブラリのインストール
Djangoは高度なPython Webフレームワークであり、ORM(オブジェクト関係マッピング)システムを提供し、データベース操作を簡素化できます。Djangoは、MySQL、PostgreSQL、SQLiteなど、さまざまなデータベースバックエンドをサポートしています。
コマンドプロンプトまたはPowerShellターミナルを開き、以下のコマンドを実行して、DjangoとMySQLクライアントライブラリをインストールします。
pip install django mysqlclient
インストールが完了したら、以下のコマンドを実行してインストールが正常に完了したかどうかを確認します:
pip list | grep -i django
説明
Djangoは多機能なWebフレームワークであり、ORMシステムを提供してデータベース操作を簡素化できます。DjangoのORMシステムは、MySQL、PostgreSQL、SQLiteなど、さまざまなデータベースバックエンドをサポートしています。
ステップ3:Djangoプロジェクトとアプリケーションの作成
oceanbase_demoという名前のDjangoプロジェクトを作成します。django-admin startproject oceanbase_demoプロジェクトのディレクトリに移動します。
cd oceanbase_demousersという名前のアプリケーションを作成します。python manage.py startapp users
ステップ4:データベース接続の設定
oceanbase_demo/settings.pyファイルを開き、データベース設定を変更します。DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'test', 'USER': 'mysql001', 'PASSWORD': '******', 'HOST': 't********.********.oceanbase.cloud', 'PORT': '3306', 'OPTIONS': { 'charset': 'utf8mb4', }, } }INSTALLED_APPSにusersアプリケーションを追加します。INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'users', ]
ステップ5:モデルの作成
users/models.pyファイルを開き、Userモデルを作成します。from django.db import models class User(models.Model): name = models.CharField(max_length=50) age = models.IntegerField() def __str__(self): return f"{self.name} ({self.age})"
ステップ6:移行を実行する
移行ファイルを作成します。
python manage.py makemigrations移行を適用します。
python manage.py migrate
ステップ7:ビューとURLの設定を作成する
users/views.pyファイルを開き、ビュー関数を作成します。from django.shortcuts import render from django.http import HttpResponse from .models import User def index(request): # データの挿入 User.objects.create(name='John', age=20) User.objects.create(name='Lucy', age=25) User.objects.create(name='Tom', age=30) # データの更新 user = User.objects.get(name='Lucy') user.age = 26 user.save() # データのクエリ users = User.objects.all() result = "<h1>Users</h1><ul>" for user in users: result += f"<li>{user}</li>" result += "</ul>" return HttpResponse(result)oceanbase_demo/urls.pyファイルを開き、URLを設定します。from django.contrib import admin from django.urls import path from users import views urlpatterns = [ path('admin/', admin.site.urls), path('', views.index, name='index'), ]
ステップ8:開発サーバーを起動する
開発サーバーを起動します。
python manage.py runserverブラウザで
http://127.0.0.1:8000/,查看结果。` にアクセスします。結果は次のとおりです:
<h1>Users</h1> <ul> <li>John (20)</li> <li>Lucy (26)</li> <li>Tom (30)</li> </ul>
エラー処理
Djangoを使用してOB Cloudデータベースに接続する際、さまざまなエラーが発生する可能性があります。以下は一般的なエラーとその対処方法です:
接続エラー:データベースに接続できない場合は、ホスト名、ポート、ユーザー名、パスワード、データベース名を含む接続パラメータが正しいかどうか確認してください。
権限エラー:権限に関連するエラーが発生した場合は、ユーザーが必要な操作を実行するために十分な権限を持っていることを確認してください。
SQL構文エラー:SQLステートメントに構文エラーがある場合は、SQLステートメントの構文が正しいかどうか確認してください。
データ型エラー:挿入したデータ型がテーブル定義とマッチしない場合は、挿入したデータ型が正しいことを確認してください。
Djangoでは、try-except ステートメントを使用してこれらのエラーをキャッチし、処理することで、プログラムがエラーに遭遇した際にクラッシュすることなく適切に対処できるようにします。同時に、Djangoのログシステムを使用してエラー情報を記録することで、デバッグや問題の調査を容易にします。
関連ドキュメント
- OB Cloudデータベースへの接続方法の詳細については、接続方法の概要をご参照ください。