前書き
Djangoは、動的なWebサイトおよびアプリケーションを開発するためのフル機能のPython Webフレームワークです。 Djangoを使用すると、Python Webアプリケーションをすばやく作成し、フレームワークに依存して多くの面倒な作業を行うことができます。
このガイドでは、Ubuntu 18.04サーバーでDjangoを起動して実行します。 インストール後、サイトの基盤として使用する新しいプロジェクトを開始します。
異なる方法
Djangoのインストール方法は、ニーズと開発環境の構成方法に応じてさまざまです。 これらにはさまざまな利点があり、1つの方法が他の方法よりも特定の状況に適している場合があります。
いくつかの異なる方法が含まれます:
-
パッケージからのグローバルインストール:公式のUbuntuリポジトリには、従来の `+ apt +`パッケージマネージャーでインストールできるDjangoパッケージが含まれています。 これは簡単ですが、他のいくつかの方法ほど柔軟ではありません。 また、リポジトリに含まれるバージョンは、プロジェクトから入手できる公式バージョンよりも遅れることがあります。
-
*仮想環境での `+ pip `によるインストール*: ` venv `や ` virtualenv +`などのツールを使用して、プロジェクト用の自己完結型の環境を作成できます。 仮想環境を使用すると、他のプロジェクトごとのカスタマイズやパッケージとともに、大規模なシステムに影響を与えることなく、Djangoをプロジェクトディレクトリにインストールできます。 これは通常、Djangoを使用する最も実用的で推奨されるアプローチです。
-
* `+ git +`を使用した開発バージョンのインストール*:安定版リリースではなく最新の開発バージョンをインストールする場合は、Gitリポジトリからコードを取得できます。 これは、最新の機能/修正を取得するために必要であり、仮想環境内で実行できます。 ただし、開発バージョンには、より安定したバージョンと同じ安定性の保証はありません。
前提条件
始める前に、Ubuntu 18.04サーバーでsudo特権を持つ非rootユーザーが利用可能である必要があります。 これを設定するには、https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-18-04 [Ubuntu 18.04初期サーバー設定ガイド]に従ってください。
パッケージからのグローバルインストール
Ubuntuリポジトリを使用してDjangoをインストールする場合、プロセスは非常に簡単です。
最初に、ローカルパッケージインデックスを `+ apt +`で更新します。
sudo apt update
次に、インストールしたPythonのバージョンを確認します。 18.04にはデフォルトでPython 3.6が付属しています。これは、次のように入力して確認できます。
python3 -V
次のような出力が表示されます。
OutputPython
次に、Djangoをインストールします。
sudo apt install python3-django
次のように入力して、インストールが成功したことをテストできます。
django-admin --version
Output
これは、ソフトウェアが正常にインストールされたことを意味します。 また、Djangoバージョンが最新の安定バージョンではないことに気付くかもしれません。 ソフトウェアの使用方法の詳細については、https://www.digitalocean.com/community/tutorials/how-to-install-the-django-web-framework-on-ubuntu-18-04#をご覧ください。サンプルプロジェクトの作成[サンプルプロジェクトの作成方法]。
仮想環境でpipを使用してインストールする
システムにDjangoをインストールする最も柔軟な方法は、仮想環境内です。 標準のPython 3ライブラリの一部である `+ venv +`モジュールを使用して作成する仮想環境にDjangoをインストールする方法を示します。 このツールを使用すると、システムの残りの部分に影響を与えることなく、仮想Python環境を作成し、Pythonパッケージをインストールできます。 したがって、他のプロジェクトの要件との競合に関係なく、プロジェクトごとにPythonパッケージを選択できます。
ローカルパッケージインデックスを更新することから始めましょう。
sudo apt update
インストールしたPythonのバージョンを確認します。
python3 -V
OutputPython
次に、Ubuntuリポジトリから「+ pip +」をインストールします。
sudo apt install python3-pip
`+ pip `をインストールしたら、それを使用して ` venv +`パッケージをインストールできます。
sudo apt install python3-venv
これで、新しいプロジェクトを開始するたびに、そのプロジェクト用の仮想環境を作成できます。 新しいプロジェクトディレクトリを作成して移動することから始めます。
mkdir ~/
cd ~/
次に、バージョンのPythonと互換性のある `+ python`コマンドを使用して、プロジェクトディレクトリ内に仮想環境を作成します。 仮想環境を「++」と呼びますが、わかりやすい名前を付ける必要があります。
python3 -m venv
これにより、スタンドアロンバージョンのPythonと `+ pip +`がプロジェクトディレクトリ内の分離されたディレクトリ構造にインストールされます。 選択した名前のディレクトリが作成され、パッケージがインストールされるファイル階層が保持されます。
分離環境にパッケージをインストールするには、次を入力してアクティブ化する必要があります。
source /bin/activate
仮想環境にいることを反映して、プロンプトが変更されるはずです。 `+()username @ hostname:〜/ newproject $ +`のようになります。
新しい環境では、「+ pip 」を使用してDjangoをインストールできます。 Pythonのバージョンに関係なく、仮想環境では ` pip `は単に ` pip `と呼ばれるべきです。 また、ローカルにインストールしているので、 ` sudo +`を使用する必要はありません。
pip install django
次のように入力して、インストールを確認できます。
django-admin --version
Output
ご使用のバージョンは、ここに示されているバージョンと異なる場合があります。
仮想環境を離れるには、システムのどこからでも `+ deactivate +`コマンドを発行する必要があります:
deactivate
プロンプトは従来の表示に戻るはずです。 プロジェクトで再度作業する場合は、プロジェクトディレクトリに戻ってアクティブ化することにより、仮想環境を再度アクティブ化します。
cd ~/
source /bin/activate
Gitを使用した開発バージョンのインストール
Djangoの開発バージョンが必要な場合は、GitリポジトリからDjangoをダウンロードしてインストールできます。 これを仮想環境内から行いましょう。
まず、ローカルパッケージインデックスを更新しましょう。
sudo apt update
インストールしたPythonのバージョンを確認します。
python3 -V
OutputPython
次に、公式リポジトリから `+ pip +`をインストールします。
sudo apt install python3-pip
`+ venv +`パッケージをインストールして、仮想環境を作成します。
sudo apt install python3-venv
次のステップは、Djangoリポジトリのクローンを作成することです。 リリース間で、このリポジトリには、安定性を犠牲にして、より多くの最新機能とバグ修正が含まれます。 次のように入力して、ホームディレクトリ内の「+〜/ +」というディレクトリにリポジトリを複製できます。
git clone git://github.com/django/django ~/
このディレクトリに移動します。
cd ~/
インストールされているバージョンのPythonと互換性のある `+ python`コマンドを使用して仮想環境を作成します。
python3 -m venv
有効化する:
source /bin/activate
次に、 `+ pip `を使用してリポジトリをインストールできます。 ` -e +`オプションは、「編集可能」モードでインストールされます。これは、バージョン管理からインストールする場合に必要です。
pip install -e ~/
次のように入力して、インストールが成功したことを確認できます。
django-admin --version
Output
繰り返しますが、表示されるバージョンは、ここに表示されるバージョンと一致しない場合があります。
これで、仮想環境に最新バージョンのDjangoがあります。
サンプルプロジェクトの作成
Djangoをインストールしたら、プロジェクトの構築を開始できます。 プロジェクトを作成し、仮想環境を使用して開発サーバーでテストする方法について説明します。
最初に、プロジェクトのディレクトリを作成し、そこに変更します。
mkdir ~/
cd ~/
次に、仮想環境を作成します。
python3 -m venv
環境をアクティブにします。
source /bin/activate
Djangoをインストールします。
pip install django
プロジェクトをビルドするには、 + startproject`コマンドで
+ django-admin`を使用できます。 プロジェクトを「+」と呼びますが、これを別の名前に置き換えることができます。 ` startproject +`は現在の作業ディレクトリ内に以下を含むディレクトリを作成します:
-
管理スクリプト
+ manage.py +
。これを使用して、Django固有のさまざまなタスクを管理できます。 -
実際のプロジェクトコードを含むディレクトリ(プロジェクトと同じ名前)。
ただし、ネストされたディレクトリが多くなりすぎないようにするには、管理スクリプトと内部ディレクトリを_current_ディレクトリに配置するようにDjangoに指示します(末尾のドットに注意してください)。
django-admin startproject .
データベースを移行するには(この例ではデフォルトでSQLiteを使用します)、 `+ manage.py `で ` migrate +`コマンドを使用します。 Migrationsは、Djangoに対して行った変更を適用しますhttps://www.digitalocean.com/community/tutorials/how-to-create -django-models [models]をデータベーススキーマに追加します。
データベースを移行するには、次のように入力します。
python manage.py migrate
次のような出力が表示されます。
OutputOperations 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 sessions.0001_initial... OK
最後に、https://www.digitalocean.com/community/tutorials/how-to-enable-and-connect-the-django-admin-interface [Djano admin interface]を使用できるように、管理ユーザーを作成します。 `+ createsuperuser +`コマンドでこれを実行しましょう:
python manage.py createsuperuser
ユーザー名、メールアドレス、パスワードの入力を求められます。
Django設定でALLOWED_HOSTSを変更する
アプリケーションを正常にテストするには、Django設定のディレクティブの1つを変更する必要があります。
次のように入力して設定ファイルを開きます。
nano ~///settings.py
内部で、 `+ ALLOWED_HOSTS +`ディレクティブを見つけます。 これは、Djangoインスタンスへの接続に使用できるアドレスまたはドメイン名のホワイトリストを定義します。 このリストにない* Host *ヘッダーを持つ受信リクエストは例外を発生させます。 Djangoでは、特定のクラスのセキュリティ脆弱性を防ぐために、これを設定する必要があります。
角括弧内に、Djangoサーバーに関連付けられているIPアドレスまたはドメイン名をリストします。 各項目は引用符で囲み、コンマで区切られた個別のエントリを使用する必要があります。 ドメイン全体とサブドメインのリクエストが必要な場合は、エントリの先頭にピリオドを追加します。
〜/ django-test / djangoproject / settings.py
. . .
ALLOWED_HOSTS = ['', '', ]
終了したら、ファイルを保存してエディターを終了します。
開発サーバーのテスト
ユーザーを取得したら、Django開発サーバーを起動して、新しいDjangoプロジェクトがどのように見えるかを確認できます。 これは開発目的でのみ使用してください。 デプロイする準備ができたら、https://docs.djangoproject.com/en/2.1/howto/deployment/checklist/ [Djangoのデプロイメントに関するガイドライン]に注意深く従ってください。
開発サーバーを試す前に、ファイアウォールで適切なポートを開いていることを確認してください。 サーバーの初期セットアップガイドに従ってUFWを使用している場合は、次のように入力してポート「8000」を開くことができます。
sudo ufw allow 8000
開発サーバーを起動します。
python manage.py runserver :8000
WebブラウザーでサーバーのIPアドレスの後に「:8000」を入力します。
http://:8000
次のようなものが表示されるはずです。
image:https://assets.digitalocean.com/articles/django_install_18_04/django_landing_page_18_04.png [Django public page]
管理インターフェイスにアクセスするには、URLの末尾に「+ / admin / +」を追加します。
http://:8000/admin/
これにより、ログイン画面が表示されます。
image:https://assets.digitalocean.com/articles/eng_python/django/django-admin-login.png [Django admin login]
作成した管理者のユーザー名とパスワードを入力すると、サイトのメインの管理者セクションにアクセスできます。
image:https://assets.digitalocean.com/articles/eng_python/django/django-admin-panel.png [Django管理ページ]
Django管理インターフェイスの操作の詳細については、https://www.digitalocean.com/community/tutorials/how-to-enable-and-connect-the-django-admin-interface [「有効にする方法とDjango管理インターフェイスを接続します。」]
デフォルトのサイトを調べ終わったら、ターミナルで「+ CTRL-C +」と入力して開発サーバーを停止できます。
作成したDjangoプロジェクトは、より完全なサイトを設計するための構造的基盤を提供します。 アプリケーションの構築方法とサイトのカスタマイズ方法の詳細については、Djangoのドキュメントをご覧ください。
結論
これで、Ubuntu 18.04サーバーにDjangoがインストールされ、強力なWebアプリケーションを作成するために必要な主要ツールが提供されます。 また、新しいプロジェクトを開始し、開発者サーバーを起動する方法を知っている必要があります。 Djangoのような完全なWebフレームワークを活用すると、開発を高速化でき、アプリケーションの固有の側面のみに集中できます。
modelsやhttps://などの詳細な議論を含む、Djangoの使用に関する詳細情報が必要な場合www.digitalocean.com/community/tutorials/how-to-create-django-views[views]、https://www.digitalocean.com/community/tutorial_series/django-development[Django development series]をご覧ください。