アプリケーションにデータベースを追加すると、データの整合性とセキュリティが確保されます。PostgreSQL(Postgres)は、検討したいStructured Query Language(SQL)データベース管理システムです。
Postgresは、一般的なオペレーティングシステムのほとんどをサポートしており、最新のプログラミング言語と互換性があります。Postgresはまた、さまざまなデータやドキュメントのタイプを処理します。SQLのスキルは需要が高いため、PostgreSQLの設定と使用方法を学ぶことは有利です。
DjangoアプリケーションでPostgresをインストール、設定、および使用する方法を学びます。また、データベースに追加、保存、およびデータベースからデータを取得することにより、データベースの機能をテストします。
1. システムにPostgreSQLをインストールする
以下の手順では、UbuntuオペレーティングシステムにPostgresをインストールする方法を説明します。Windowsユーザーの場合は、このステップバイステップガイドに従ってWindowsにPostgresをインストールできます。
Postgresをインストールする前に、次のコマンドでバージョンパッケージとその依存関係を更新します。
$ sudo apt-get update
次に、次のコマンドでPostgreSQLをインストールします。
$ sudo apt-get install postgresql postgresql-contrib libpq-dev
インストールの確認を求められたら、Yを押してYesを選択します。
次のコマンドを使用してサーバーに接続します。
$ sudo -i -u postgres
次に、データベースクライアントを使用して、インストールされているPostgresのバージョンを確認します。
コマンドpsql --versionを実行します。
postgres@nameofaccount:~$ psql --version
出力には、次のようにPostgresのバージョンが表示されます。
psql (PostgreSQL) 14.5 (Ubuntu 14.5-0ubuntu0.22.04.1)
exitコマンドを実行してPostgresアカウントを終了します。
postgres@nameofaccount:~$ exit
2. データベースを作成する
Djangoアプリに接続するデータベースを作成する必要があります。Postgresシェルに戻り、次のコマンドを連続して実行します。
sudo -i -u postgres
$ psql
次に、クライアントを使用してサーバーにデータベースを作成します。
postgres=# create database new_db;
サーバーは、データベースを作成するとCREATE DATABASEという用語を返します。また、\lコマンドを使用してシステム内のすべてのデータベースをリストすることでも確認できます。
postgres=# \l
PostgreSQLの構造
一般的なSQLデータベースと同様に、PostgreSQLはデータをテーブルに格納します。テーブルは、アプリケーション内のさまざまな項目/モデルを表します。テーブルには、固定数の列と行があります。
各テーブルには、プライマリキーと呼ばれる特定の列があり、テーブルに格納されている各行の一意の識別子です。テーブルには、別のテーブルのプライマリキーに接続する外部キーがある場合もあります。
外部キーは、2つのテーブル間の関係を定義します。
次に、Djangoアプリを作成し、データベースをリンクする必要があります。しかし、まず、アプリとデータベースの接続に役立つpsycopg2をインストールします。
3. DjangoとPsycopg2ライブラリをインストールする
PostgresをDjangoアプリに接続するには、psycopg2ライブラリをインストールする必要があります。これは、Djangoと接続して通信するのに役立つPostgresの依存関係です。
次のコマンドを実行してpsycopg2とDjangoをインストールします。
$ pipenv install psycopg2 Django
4. Djangoアプリを作成する
Postgresデータベースを使用するDjangoアプリを作成する必要があります。まず、アプリをサポートするためにmybomaというプロジェクトを作成します。Djangoプロジェクトは、アプリの実行に必要な依存関係とアプリケーション設定を自動生成します。
Boma-watchという名前のフォルダーを作成し、次のコマンドでそこに移動します。
$ mkdir Boma-watch
$ cd Boma-watch
次に、次のコマンドでDjangoプロジェクトを作成します。
$ django-admin startproject myboma .
コマンドの最後にピリオドを追加してください。そうしないと、Djangoはプロジェクトを格納するための新しいフォルダーを作成します。
次に、次のコマンドでbomaという名前の新しいアプリを作成します。
$ django startapp boma
以前にDjangoを使用したことがない場合は、Djangoの初心者向けガイドから始めることができます。ブラウザでアプリを実行して動作を確認したら、次のセクションでデータベースに接続します。
5. データベースをDjangoアプリに接続する
次の手順を使用して、作成したデータベースにDjangoアプリを接続します。
ステップ1:プロジェクト設定を変更してPostgresを使用する
DjangoアプリをPostgresに接続するには、プロジェクト設定を変更する必要があります。プロジェクトのsettings.pyファイルに移動します。次に、DATABASES設定を変更してPostgresの設定を追加します。
USERとPASSWORDをpsqlのユーザー名とパスワードに置き換えます。
#......DATABASES = {'default': {'ENGINE':'django.db.backends.postgresql','NAME':'new_db','USER':'morine','PASSWORD':'password',}}
ステップ2:タイムゾーンを更新する
次に、settings.pyファイルで、タイムゾーンを自分の所在地に合わせて設定します。Djangoプロジェクトは、UTCタイムゾーンで事前に設定されています。
TIME_ZONE = Africa/Nairobi
ステップ3:モデルを作成する
アプリにプロフィールモデルを作成します。このモデルクラスを使用して、データベースにテーブルを作成し、アプリの名前とバイオデータを格納します。
class Profile(models.Model):name = models.CharField(max_length=30)bio = models.TextField(max_length=100)def __str__(self):return self.name
ステップ4:マイグレーションを開始する
マイグレーションを開始するには、次のコマンドを実行します。
(virtual)$ python manage.py makemigrations boma
(virtual)$ python manage.py migrate
正常なマイグレーションはこのようになります。
python manage.py migrateコマンドは、INSTALLED_APPS設定> models.pyファイルからアプリを選択し、各モデルのテーブルを作成します。Postgresをアプリケーションに正常に接続しました。
これで、アプリケーションでCREATE、READ、UPDATE、およびDELETE(CRUD)コマンドをテストできます。
6. アプリでCRUDコマンドをテストする
DjangoのPython APIを使用すると、いくつかのCRUDデータベース操作を実行できます。APIは関数をモデルと接続して、データベースを操作できるようにします。
次のコマンドを使用して、DjangoプロジェクトでPythonシェルを開きます。
(virtual)$ python manage.py shell
このコマンドは、CRUD操作をテストできるコンソールを開きます。
作成操作
最初に、次のコマンドを使用してmodelsモジュールからProfileモデルをインポートします。
from boma.models import Profile
次に、Profileクラスのインスタンスを作成し、データを渡します。
prof1 = Profile.objects.create(name ='Ken',bio ='I am a Scorpio')
次に、データベースにデータを保存します。
prof1.save()
読み取り操作
データベースにデータを作成して保存したら、クエリを実行して保存したデータを取得できます。
Profile.objects.all()を使用して、データベースのProfileテーブルにあるすべてのデータを取得します。
Profile.objects.all() #outputs
主キーまたはpkを使用して、単一のオブジェクトを取得することもできます。これらは、データベースに保存された各アイテムに割り当てられた番号です。
Profile.objects.get(pk = 1) #outputs
更新操作
次のコマンドを使用して、保存したデータを更新できます。
Profile.objects.filter(id = 1).update(name ='Kim';) #outputs 1
名前が更新されたことを確認するには、次のコマンドを実行します。
Profile.objects.filter(id = 1) #outputs
削除操作
次のコマンドを使用して、保存したアイテムを削除できます。
Profile.objects.filter(id = 1).delete() #outputs (1, {app.Profile: 1})
削除を確認するには、次のコマンドを実行します。
Profile.objects.filter(id = 1) #outputs
クエリセットが空であることがわかります。これは、データがデータベースに存在しなくなったことを示しています。
PostgreSQLを使用する理由
Postgresは、最も高度なSQLデータベースの1つです。そのオープンソースのビルドにより、パフォーマンスが常に改善されます。
ワークロードの管理はより簡単になり、データベースのソートはリリースごとに改善されます。Postgresが人気のある理由の1つは、ほとんどの最新のプログラミング言語とオペレーティングシステムと互換性があることです。
コメントする