ブログに戻る

Ubuntu 21.04 ServerでDjangoとPostgreSQLを使用する

Ubuntu 21.04 ServerでDjangoとPostgreSQLを使用する

Djangoは、堅牢でスケーラブル、安全、かつ高性能なWebアプリの構築プロセスを効率化する、有名なWebフレームワークです。これは、Pythonで書かれたオープンソースプロジェクトです。詳細については、Djangoのより詳細な情報はこちら.

データを管理するために、すべてのWebアプリはバックエンドとしてデータベースを必要とします。Djangoは、バックエンドとしてさまざまなデータベースエンジンをサポートしています。例えば、MySQL, PostgreSQL, SQLiteなどです。PostgreSQLは、強力なオープンソースのオブジェクト関係データベースシステムです。その信頼性、スケーラビリティ、セキュリティ、そして堅牢な機能群で知られています。詳細については、PostgreSQLの詳細はこちら.

このガイドでは、サンプルのDjangoアプリでバックエンドとしてPostgreSQLを統合する方法を紹介します.

前提条件

Djangoを使用するには、特定のシステム構成が必要です。

このガイドでは、機能的なDjangoアプリに必要なさまざまなPythonモジュールやライブラリの使用方法についても紹介します。

ステップ 1. 必要なコンポーネントのインストール

プロジェクトを動作させるには、Ubuntuシステムにいくつかの重要なパッケージをインストールする必要があります。幸いなことに、これらはすべて公式のUbuntuパッケージリポジトリから直接入手できます。これらのパッケージには、Pythonコンポーネントとデータベース(PostgreSQL)コンポーネントが含まれています。

まず、ターミナルを起動してAPTパッケージキャッシュを更新します。

Using PostgreSQL with Django 1

次に、パッケージをインストールします。

Using PostgreSQL with Django 2

ステップ 2. データベースの準備

これでPostgreSQLがインストールされ、使用する準備が整いました。次に、Djangoアプリ用の専用データベースとユーザーを作成します。専用ユーザーを用意することは、データベースと権限の管理に役立ちます。

インストール中に、PostgreSQLは専用ユーザー postgresを作成します。このユーザーは、PostgreSQL上で任意の管理タスクを実行する権限を持っています。 postgres アカウントにアクセスします。

ユーザー postgresの新しいシェルセッションが開始されます。次に、PostgreSQLシェルを開きます。

次に、Djangoアプリ用の専用データベースを作成します。Djangoアプリと同じ名前を付けることをお勧めします。

次に、専用のデータベースユーザーを作成します。このユーザーを使用して、Django専用のデータベースにアクセスします。

次のステップでは、新しいユーザーの接続パラメータをいくつか調整します。これにより、接続が確立されるたびに値を照会する必要がなくなるため、データベース操作が高速化されます。次のコマンドを実行します。

これらのコマンドを簡単に説明します。

  • デフォルトのエンコーディングをUTF-8に設定しています。これは、Djangoがデータベースとやり取りする際に想定しているものです。

  • デフォルトのトランザクションスキームは「read committed」に設定されており、コミットされていないトランザクションからの読み取りがブロックされます。

  • タイムゾーンは、場所に応じて設定する必要があります。

タイムゾーン名がわからない場合は、次のコマンドを実行すると、PostgreSQLでサポートされているすべてのタイムゾーンが一覧表示されます。

Using PostgreSQL with Django 4

最後に、Django専用データベースに対するすべての権限を新しいユーザーに付与します:

これでPostgreSQLでの作業は完了です。 psqlシェルを終了し、 postgres セッションからログアウトします。

ステップ 3. Djangoのインストール

Djangoアプリに必要なデータベースサーバーの設定が完了しました。次に、専用のDjangoアプリをインストールして設定します。DjangoはUbuntuの公式リポジトリから直接入手できますが、この方法はお勧めしません。システム全体にDjangoがインストールされてしまうためです。柔軟性を高め、管理を容易にするために、代わりに仮想環境にDjangoをインストールします。仮想Python環境内でDjangoをインストールして設定するのが一般的な方法です。

Pythonには、 virtualenv モジュールがあり、対象の場所に仮想Python環境を作成します。この環境には、Pythonのバイナリと設定のコピーが作成されます。仮想環境内での変更は、システムの他の部分に影響を与えません。

以下をインストールします: virtualenv:

Using PostgreSQL with Django 5

次に、Python仮想環境を構築するための専用ディレクトリを作成します。これがDjangoアプリの基盤となります。デモンストレーションとして、アプリ名は sample_appとします。新しいディレクトリを作成します:

現在の作業ディレクトリを変更し、仮想環境を構築します:

その後、仮想環境を有効化します:

これで仮想環境の準備が整い、機能するようになりました。次に、 pipを使用して、Djangoと psycopg2(PostgreSQL用のPythonアダプター)をインストールします:

Using PostgreSQL with Django 6

最後に、Djangoツールを使用して新しいDjangoプロジェクトを作成できます。これにより、現在のディレクトリにすべてのコードを格納する同名の子ディレクトリと、管理スクリプトが生成されます:

ステップ 4. Djangoプロジェクトの設定

Djangoプロジェクトには、Webアプリとして機能するための最小限のツールがすべて揃っています。これをデータベースと統合するには、設定ファイルをいくつか微調整する必要があります。

テキストエディタで settings.py ファイルを開きます:

下方にスクロールして、 DATABASES セクションに移動します。デフォルトでは、SQLite:

を使用するように設定されています。今回の目的に合わせて、コードを以下のように変更します:

ここでは、データベース通信に psycopg2 アダプターを使用するようにDjangoに指示しています。また、データベース名や専用ユーザーのユーザー名、パスワードなど、必要なデータベース情報をすべて宣言します。

完了したら、ファイルを保存してエディタを閉じます。

ステップ 5. データベースのマイグレーション

DjangoがPostgreSQLデータベースにアクセスするように設定されました。これで、データ構造をデータベースにマイグレーションできます。Djangoでは、これはマイグレーション.

と呼ばれます。データベースの変更をマイグレーションするには、管理スクリプトであるmanage.py:


Using PostgreSQL with Django 7

次に、Djangoアプリのスーパーユーザーを作成します:

Using PostgreSQL with Django 8

このスーパーユーザーアカウントは、Djangoアプリの管理者アカウントとして機能します。

ステップ 6. 変更のテスト

これまでに、Djangoアプリに複数の調整を加えました。すべてが意図した通りに動作しているか確認する時間です。アプリを起動し、管理パネルにアクセスしてこれを確認します。

Djangoアプリをローカルで開発しているため、サーバーを以下で起動します: localhost。慣例として、次のポートで起動します: 8000。ファイアウォールを設定している場合は、次のポートへのトラフィックを許可する必要があります: 8000。詳細については、UFWの基本はこちら.

Djangoサーバーを起動します:

ブラウザでURLにアクセスします:

Using PostgreSQL with Django 9

Djangoのインストール成功ページが表示されるはずです。Djangoの管理ページにアクセスするには、次のURLに移動します:

Using PostgreSQL with Django 10

ログインするには、作成したスーパーユーザーを使用する必要があります:

お見事!管理パネルに正常にアクセスできました!

確認が終わったら、Ctrl + C をコンソールから押して、Djangoサーバーを停止します。

最後に

このガイドでは、サンプルのDjangoアプリを構築し、バックエンドとしてPostgreSQLを設定する方法を実演しました。開発中(および軽度な本番環境での使用)のニーズを満たすには、通常SQLiteで十分ですが、ほとんどのプロジェクトは、より機能が豊富なDBMSに切り替えることで大きな恩恵を受けられます。PostgreSQLは、パフォーマンスとスケーラビリティにおいて優れた選択肢です。

Djangoは、数多くのテクノロジーと連携できる多才なWebフレームワークです。Djangoの使用方法を実演する他のクラウドガイドもご覧ください:

ハッピーコンピューティング!

author

Preslav Dobrev

著者 · CloudSigma

Preslav DobrevはCloudSigmaのクリエイティブデザイナーであり、従来型および革新的なマーケティングチャネルを活用した一貫性のあるビジネスアイデンティティに注力しています。彼は芸術的なビジョンと戦略的マーケティングを融合させ、インパクトのあるブランドナラティブを生み出すことに長けています。

コメント

コメントはまだありません。最初のコメントを投稿しましょう。