Ubuntu 22.04 に Django Web フレームワークをインストールする方法

はじめに

Djangoは、動的なウェブサイトやアプリケーションを開発するためのフル機能を備えたPythonウェブフレームワークです。Djangoを使用すると、Pythonウェブアプリケーションを迅速に作成し、フレームワークが大部分の重労働を行うことができます。

このガイドでは、Ubuntu 22.04サーバーでDjangoをセットアップします。インストール後、新しいプロジェクトを開始して、サイトの基礎として使用します。

異なる方法

Djangoをインストールする方法はさまざまで、必要に応じて開発環境を構成する方法によって異なります。これらにはそれぞれ異なる利点があり、ある方法が他の方法よりも特定の状況に適している場合があります。

いくつかの異なる方法には、次のようなものがあります。

  • パッケージからのグローバルインストール:公式のUbuntuリポジトリには、従来のaptパッケージマネージャーでインストールできるDjangoパッケージが含まれています。これは簡単ですが、他の方法ほど柔軟ではありません。また、リポジトリに含まれるバージョンは、プロジェクトから利用可能な公式のバージョンよりも遅れる場合があります。
  • 仮想環境でpipを使用してインストールvenvvirtualenvなどのツールを使用して、プロジェクトごとに自己完結型の環境を作成できます。仮想環境を使用すると、大規模なシステムに影響を与えることなく、プロジェクトディレクトリにDjangoをインストールできます。これにより、プロジェクトごとのカスタマイズやパッケージの追加も可能になります。通常、Djangoを使用する際には、これが最も実用的でお勧めされるアプローチです。
  • gitを使用して開発版をインストール:安定版の代わりに最新の開発版をインストールしたい場合は、Gitリポジトリからコードを取得することができます。 これにより、最新の機能や修正を取得することができますが、開発版にはより安定したバージョンとは異なる安定性の保証があります。

前提条件

開始する前に、Ubuntu 22.04サーバーにsudo特権を持つ非rootユーザーが必要です。これを設定するには、Ubuntu 22.04初期サーバーセットアップガイドに従ってください。

パッケージからのグローバルインストール

DjangoをUbuntuのリポジトリを使用してインストールしたい場合、プロセスは非常に簡単です。

まず、ローカルのパッケージインデックスをaptで更新します:

  1. sudo apt update

次に、インストールされているPythonのバージョンを確認します。22.04にはデフォルトでPython 3.10がインストールされています。これを確認するには、次のように入力します:

  1. python3 -V

次のような出力が表示されます:

Output
Python 3.10.4

次に、Djangoをインストールします:

  1. sudo apt install python3-django

インストールが成功したかどうかをテストするには、次のように入力します:

  1. django-admin --version
Output
3.2.12

これにより、ソフトウェアが正常にインストールされたことが示されます。また、Djangoのバージョンが最新の安定版でないことに気づくかもしれません。ソフトウェアの使用方法について詳しく知るには、次に進んでサンプルプロジェクトの作成方法を学びます。

仮想環境でpipを使用してインストールする

システムにDjangoをインストールする最も柔軟な方法は、仮想環境内にインストールすることです。標準のPython 3ライブラリの一部であるvenvモジュールを使用して、仮想環境を作成し、Pythonパッケージをインストールします。このツールを使用すると、システムの他の部分に影響を与えることなく、仮想Python環境を作成し、Pythonパッケージをインストールできます。したがって、他のプロジェクトの要件との競合に関係なく、プロジェクトごとにPythonパッケージを選択できます。

まず、ローカルのパッケージインデックスを更新しましょう:

  1. sudo apt update

Pythonのインストールされているバージョンを確認してください:

  1. python3 -V
Output
Python 3.10.4

次に、Ubuntuのリポジトリからpipvenvをインストールしましょう:

  1. sudo apt install python3-pip python3-venv

これで、新しいプロジェクトを始めるときに、そのための仮想環境を作成できます。まず、新しいプロジェクトディレクトリを作成して移動します:

  1. mkdir ~/newproject
  2. cd ~/newproject

次に、プロジェクトディレクトリ内で、Pythonのバージョンに対応したpythonコマンドを使用して仮想環境を作成します。仮想環境の名前はmy_envとしますが、説明的な名前を付けてください:

  1. python3 -m venv my_env

これにより、独立したPythonとpipのバージョンが、プロジェクトディレクトリ内の隔離されたディレクトリ構造にインストールされます。選択した名前のディレクトリが作成され、そこにパッケージがインストールされます。

独立した環境にパッケージをインストールするには、それをアクティブにする必要があります。これは次のように入力して行います:

  1. source my_env/bin/activate

プロンプトが変更され、現在仮想環境にいることが反映されます。次のようなものになります:(my_env)username@hostname:~/newproject$

新しい環境では、pipを使用してDjangoをインストールできます。Pythonのバージョンに関係なく、仮想環境にいるときはpipを単にpipと呼びます。また、ローカルにインストールするためsudoを使用する必要はありません:

  1. pip install django

インストールを確認するには、次のように入力します:

  1. django-admin --version
Output
4.0.4

ここで表示されているバージョンとは異なる場合があることに注意してください。

仮想環境から抜けるには、システムのどこからでもdeactivateコマンドを発行する必要があります。

  1. deactivate

プロンプトは従来の表示に戻ります。プロジェクトに再度取り組みたいときは、プロジェクトディレクトリに戻ってアクティブ化してください:

  1. cd ~/newproject
  2. source my_env/bin/activate

Gitで開発バージョンをインストール

開発版のDjangoが必要な場合は、DjangoをそのGitリポジトリからダウンロードしてインストールできます。これを仮想環境内で行いましょう。

まず、ローカルパッケージインデックスを更新します:

  1. sudo apt update

インストールされているPythonのバージョンを確認します:

  1. python3 -V
Output
Python 3.10.4

次に、pipvenvを公式のリポジトリからインストールします:

  1. sudo apt install python3-pip python3-venv

次のステップは、Djangoリポジトリをクローンすることです。リリース間では、このリポジトリにはより最新の機能とバグ修正がありますが、安定性が犠牲になる可能性があります。ホームディレクトリ内の~/django-devというディレクトリにリポジトリをクローンできます。以下のように入力してください:

  1. git clone git://github.com/django/django ~/django-dev

このディレクトリに移動します:

  1. cd ~/django-dev

インストールされているPythonのバージョンと互換性のあるpythonコマンドを使用して仮想環境を作成します:

  1. python3 -m venv my_env

それをアクティブにします:

  1. source my_env/bin/activate

次に、リポジトリをpipを使用してインストールできます。 -eオプションは、バージョン管理からのインストール時に必要な「編集可能」モードでインストールします:

  1. pip install -e ~/django-dev

インストールが成功したことを確認するには、次のように入力します:

  1. django-admin --version
Output
4.0.4.2

再度、表示されるバージョンはここに表示されているものと一致しない場合があります。

これで仮想環境に最新バージョンのDjangoがインストールされました。

サンプルプロジェクトの作成

Djangoがインストールされたら、プロジェクトの構築を開始できます。プロジェクトを作成し、仮想環境を使用して開発サーバーでテストする方法について説明します。

まず、プロジェクト用のディレクトリを作成し、そのディレクトリに移動します:

  1. mkdir ~/django-test
  2. cd ~/django-test

次に、仮想環境を作成します:

  1. python3 -m venv my_env

環境をアクティブにします:

  1. source my_env/bin/activate

Djangoをインストールします:

  1. pip install django

プロジェクトを構築するには、django-adminstartprojectコマンドと共に使用できます。プロジェクトをdjangoprojectと呼びますが、これを別の名前に置き換えることもできます。startprojectは、現在の作業ディレクトリ内にディレクトリを作成します。内部には次のものが含まれます:

  • A management script, manage.py, which you can use to administer various Django-specific tasks.
  • A directory (with the same name as the project) that includes the actual project code.

ただし、ネストされたディレクトリが多すぎるのを避けるために、Djangoに管理スクリプトと内部ディレクトリを現在のディレクトリに配置するように指示しましょう(末尾のドットに注意してください):

  1. django-admin startproject djangoproject .

データベースを移行するには(この例ではデフォルトでSQLiteを使用)、manage.pyと共にmigrateコマンドを使用しましょう。 マイグレーションは、Django モデルに加えた変更をデータベーススキーマに適用します。

データベースを移行するには、次のように入力してください:

  1. python manage.py migrate

以下のような出力が表示されます:

Output
Operations to perform: Apply all migrations: admin, auth, contenttypes, sessions Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying admin.0003_logentry_add_action_flag_choices... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying auth.0009_alter_user_last_name_max_length... OK Applying auth.0010_alter_group_name_max_length... OK Applying auth.0011_update_proxy_permissions... OK Applying auth.0012_alter_user_first_name_max_length... OK Applying sessions.0001_initial... OK

最後に、管理ユーザーを作成してDjano管理インターフェースを使用できるようにしましょう。 これをcreatesuperuserコマンドで行います:

  1. python manage.py createsuperuser

ユーザー名、メールアドレス、およびユーザーのパスワードを入力するようにプロンプトが表示されます。

Django設定でALLOWED_HOSTSを変更する

アプリケーションを正常にテストするには、Django設定の指示の1つを変更する必要があります。

次のように入力して設定ファイルを開きます:

  1. nano ~/django-test/djangoproject/settings.py

内部で、ALLOWED_HOSTSディレクティブを見つけてください。これは、Djangoインスタンスに接続するために使用できるアドレスまたはドメイン名のリストを定義します。このリストにないHostヘッダーを持つ受信リクエストは例外を発生させます。 Djangoは、特定のセキュリティ脆弱性の一部を防ぐためにこれを設定する必要があります。

角かっこ内に、Djangoサーバーに関連付けられているIPアドレスまたはドメイン名をリストします。各アイテムは引用符で囲まれ、カンマで区切られた別々のエントリで指定する必要があります。ドメイン全体とそのサブドメインに対するリクエストを受け入れる場合は、エントリの先頭にピリオドを追加してください。

~/django-test/djangoproject/settings.py
ALLOWED_HOSTS = ['your_server_ip_or_domain', 'your_second_ip_or_domain', . . .]

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

開発サーバーのテスト

ユーザーを取得したら、新しいDjangoプロジェクトがどのように見えるかを確認するために、Django開発サーバーを起動できます。これは開発目的でのみ使用してください。デプロイ準備ができたら、Djangoのデプロイガイドラインに注意してください。

開発サーバーを試す前に、ファイアウォールで適切なポートを開いていることを確認してください。初期のサーバーセットアップガイドに従ってUFWを使用している場合は、次のように入力してポート8000を開くことができます:

  1. sudo ufw allow 8000

開発サーバーを起動します。

  1. python manage.py runserver your_server_ip:8000

サーバーのIPアドレスに:8000を追加して、ウェブブラウザーでアクセスしてください:

http://your_server_ip:8000

これは以下のように見えるはずです:

管理画面にアクセスするには、URLの末尾に/admin/を追加してください:

http://your_server_ip:8000/admin/

これにより、ログイン画面に移動します:

作成した管理者のユーザー名とパスワードを入力すると、サイトのメイン管理セクションにアクセスできます:

Django管理画面の操作に関する詳細は、「Django管理画面の有効化と接続方法」を参照してください。

デフォルトサイトの閲覧が終了したら、ターミナルでCTRL-Cを入力して開発サーバーを停止できます。

作成したDjangoプロジェクトは、より完全なサイトを設計するための構造的な基盤を提供します。アプリケーションの構築方法やサイトのカスタマイズについての詳細は、Djangoドキュメントをご参照ください。

結論

これで、Ubuntu 22.04サーバーにDjangoがインストールされ、強力なWebアプリケーションを作成するために必要な主要なツールが提供されました。また、新しいプロジェクトを開始し、開発サーバーを起動する方法もわかりました。Djangoのような完全なWebフレームワークを活用することで、開発を迅速化し、アプリケーションのユニークな側面に集中することができます。

もしDjangoを使った作業についての詳細な情報が必要な場合は、モデルビューなどについての詳細な議論を含む、当社のDjango開発シリーズをご覧ください。

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-the-django-web-framework-on-ubuntu-22-04