前書き

Djangoは、動的なWebサイトおよびアプリケーションを開発するためのフル機能のPython Webフレームワークです。 Djangoを使用すると、Python Webアプリケーションをすばやく作成し、フレームワークに依存して多くの面倒な作業を行うことができます。

このガイドでは、Ubuntu 16.04サーバーでDjangoを起動して実行する方法を示します。 インストール後、サイトの基盤として使用する新しいプロジェクトを開始する方法を示します。

異なる方法

ニーズと開発環境の設定方法に応じて、Djangoをインストールできるさまざまな方法があります。 これらにはさまざまな利点があり、1つの方法が他の方法よりも特定の状況に適している場合があります。

さまざまな方法の一部を以下に示します。

  • パッケージからのグローバルインストール:Ubuntuの公式リポジトリには、従来の `+ apt +`パッケージマネージャーで簡単にインストールできるDjangoパッケージが含まれています。 これは非常に簡単ですが、他のいくつかの方法ほど柔軟ではありません。 また、リポジトリに含まれるバージョンは、プロジェクトから入手できる公式バージョンよりも遅れることがあります。

  • * pipによるグローバルインストール*: `+ pip `ツールはPythonパッケージのパッケージマネージャーです。 ` pip +`をインストールすると、すべてのユーザーが使用できるようにシステムレベルでDjangoを簡単にインストールできます。 これには常に最新の安定版リリースが含まれている必要があります。 それでも、グローバルインストールは本質的に柔軟性が低くなります。

  • * Virtualenvのpipを介してインストールする*:Pythonの `+ virtualenv +`パッケージを使用すると、さまざまなプロジェクト用の自己完結型の環境を作成できます。 この技術を使用すると、Djangoをプロジェクトディレクトリにインストールできます。システムに影響を与えることはありません。 これにより、プロジェクトごとのカスタマイズとパッケージを簡単に提供できます。 仮想環境は、グローバルにアクセス可能なインストールと比較して、若干の精神的およびプロセスのオーバーヘッドを追加しますが、最も柔軟性があります。

  • * gitによる開発バージョンのインストール*:安定版リリースではなく最新の開発バージョンをインストールする場合は、 `+ git +`リポジトリからコードを取得する必要があります。 これは、最新の機能/修正を取得するために必要であり、グローバルまたはローカルで実行できます。 ただし、開発バージョンには同じ安定性の保証はありません。

上記の注意事項と品質を念頭に置いて、以下の指示からニーズに最適なインストール方法を選択してください。

前提条件

始める前に、Ubuntu 16.04サーバーで利用可能な `+ sudo +`権限を持つ非rootユーザーが必要です。 これを設定するには、https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16-04 [Ubuntu 16.04初期サーバー設定ガイド]に従ってください。

続行する準備ができたら、次の手順に従います。

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

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

最初に、ローカルパッケージインデックスを `+ apt +`で更新します。

sudo apt-get update

次に、Djangoで使用するPythonバージョンを選択します。 Python 2の場合:

sudo apt-get install python-django

代わりに、DjangoでPython 3を使用する場合は、次のように入力します。

sudo apt-get install python3-django

次のように入力して、インストールが成功したことをテストできます。

django-admin --version
Output1.8.7

これは、ソフトウェアが正常にインストールされたことを意味します。 また、Djangoバージョンが最新の安定版ではないことに気付くかもしれません。 ソフトウェアの使用方法について少し学ぶには、https://www.digitalocean.com/community/tutorials/how-to-install-the-django-web-framework-on-ubuntu-16-04を学ぶためにスキップしてください#creating-a-sample-project [サンプルプロジェクトの作成方法]。

pipによるグローバルインストール

Djangoの最新バージョンをグローバルにインストールする場合、Pythonパッケージマネージャーである `+ pip `を使用することをお勧めします。 まず、 ` pip `パッケージマネージャーをインストールする必要があります。 ` apt +`パッケージインデックスを更新します。

sudo apt-get update

これで、 `+ pip +`をインストールできます。 Pythonバージョン2の使用を計画している場合は、次のコマンドを使用してインストールします。

sudo apt-get install python-pip

代わりに、Python 3の使用を計画している場合は、次のコマンドを使用します。

sudo apt-get install python3-pip

`+ pip +`ができたので、Djangoを簡単にインストールできます。 Python 2を使用している場合、次のように入力できます。

sudo pip install django

Python 3を使用している場合は、代わりに `+ pip3 +`コマンドを使用します。

sudo pip3 install django

次のように入力して、インストールが成功したことを確認できます。

django-admin --version
Output1.9.6

ご覧のとおり、 `+ pip +`で利用できるバージョンは、Ubuntuリポジトリのバージョンよりも最新です(おそらく、上記のものとは異なるでしょう)。

Virtualenvでpipを介してインストールする

おそらく、システムにDjangoをインストールする最も柔軟な方法は、 `+ virtualenv +`ツールを使用することです。 このツールを使用すると、システムの他の部分に影響を与えることなく、必要なPythonパッケージをインストールできる仮想Python環境を作成できます。 これにより、他のプロジェクトの要件との競合に関係なく、プロジェクトごとにPythonパッケージを選択できます。

Ubuntuリポジトリから `+ pip +`をインストールすることから始めます。 開始する前にローカルパッケージインデックスを更新します。

sudo apt-get update

Pythonのバージョン2を使用する予定がある場合は、次のように入力して「+ pip +」をインストールできます。

sudo apt-get install python-pip

代わりに、Pythonのバージョン3を使用する予定がある場合は、次のように入力して `+ pip +`をインストールできます。

sudo apt-get install python3-pip

`+ pip `をインストールしたら、それを使用して ` virtualenv `パッケージをインストールできます。 Python 2の ` pip +`をインストールした場合、次のように入力できます。

sudo pip install virtualenv

Python 3バージョンの `+ pip +`をインストールした場合、代わりにこれを入力する必要があります。

sudo pip3 install virtualenv

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

mkdir ~/
cd ~/

次のように入力して、プロジェクトディレクトリ内に仮想環境を作成します。

virtualenv

これにより、Pythonのスタンドアロンバージョンと `+ pip `がプロジェクトディレクトリ内の分離されたディレクトリ構造にインストールされます。 仮想環境を「+」と呼ぶことにしましたが、わかりやすい名前を付ける必要があります。 選択した名前のディレクトリが作成され、パッケージがインストールされるファイル階層が保持されます。

分離環境にパッケージをインストールするには、次を入力してアクティブ化する必要があります。

source /bin/activate

仮想環境にいることを反映して、プロンプトが変更されるはずです。 `+()username @ hostname:〜/ newproject $ +`のようになります。

新しい環境では、「+ pip 」を使用してDjangoをインストールできます。 Pythonのバージョン2と3のどちらを使用しているかに関係なく、仮想環境にいるときは単に ` pip `と呼ばれるべきです。 また、ローカルにインストールしているので、 ` sudo +`を使用する必要はありません。

pip install django

次のように入力して、インストールを確認できます。

django-admin --version
Output1.9.6

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

deactivate

プロンプトは従来の表示に戻るはずです。 プロジェクトで再度作業する場合は、プロジェクトディレクトリに戻ってアクティブ化することにより、仮想環境を再度アクティブ化する必要があります。

cd ~/
source /bin/activate

gitによる開発バージョンのインストール

Djangoの開発バージョンが必要な場合は、 `+ git +`リポジトリからDjangoをダウンロードしてインストールする必要があります。

そのためには、 `+ apt `でシステムに ` git +`をインストールする必要があります。 次を入力して、ローカルパッケージインデックスを更新します。

sudo apt-get update

これで、 + git +`をインストールできます。 また、 `+ pip + Pythonパッケージマネージャーもインストールします。 これを使用して、ダウンロードしたDjangoのインストールを処理します。 Python 2を使用している場合、次のように入力できます。

sudo apt-get install git python-pip

代わりにPython 3を使用している場合、これを入力する必要があります。

sudo apt-get install git python3-pip

`+ git `を取得したら、Djangoリポジトリを複製できます。 リリース間で、このリポジトリには、安定性を犠牲にして、より多くの最新機能とバグ修正が含まれます。 次のように入力して、ホームディレクトリ内の ` django-dev +`というディレクトリにリポジトリを複製できます。

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

リポジトリのクローンを作成したら、 `+ pip `を使用してインストールできます。 ` -e +`オプションを使用して、「編集可能」モードでインストールします。これは、バージョン管理からインストールするときに必要です。 Pythonのバージョン2を使用している場合は、次を入力します。

sudo pip install -e ~/django-dev

Python 3を使用している場合、次のように入力します。

sudo pip3 install -e ~/django-dev

次のように入力して、インストールが成功したことを確認できます。

django-admin --version
Output1.10.dev20160516172816

Djangoの開発バージョンを単一の環境にインストールする場合は、この戦略を上記の `+ virtualenv +`の使用と組み合わせることもできます。

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

Djangoがインストールされたので、プロジェクトの開始方法を簡単に説明できます。

使用しているPythonバージョンに一致する以下の手順に従ってください。

Python 2

`+ django-admin`コマンドを使用してプロジェクトを作成できます:

django-admin startproject
cd

これにより、現在のディレクトリ内に「」というディレクトリが作成されます。 この中で、管理スクリプトが作成され、実際のコードで「」という別のディレクトリが作成されます。

Note

Djangoの最新バージョンでデータベース(これはデフォルトでSQLiteを使用)をブートストラップするには、次のように入力します。

python manage.py migrate

「+ migrate +」コマンドが機能しない場合は、おそらく古いバージョンのDjangoを使用している可能性があります。 代わりに、これを入力できます:

python manage.py syncdb

このプロセスの一環として、管理ユーザーを作成するように求められます。 ユーザーのユーザー名、メールアドレス、パスワードを選択します。

上記の「+ migrate +」コマンドを使用した場合は、管理ユーザーを手動で作成する必要があります。 次のように入力して、管理ユーザーを作成できます。

python manage.py createsuperuser

ユーザーのユーザー名、メールアドレス、パスワードの入力を求められます。

開発バージョンでのテストに関するセクションに進んでください。

Python 3

`+ django-admin`コマンドを使用してプロジェクトを作成できます:

django-admin startproject
cd

これにより、現在のディレクトリ内に「」というディレクトリが作成されます。 この中で、管理スクリプトが作成され、実際のコードで「」という別のディレクトリが作成されます。

Note

Djangoの最新バージョンでデータベース(これはデフォルトでSQLiteを使用)をブートストラップするには、次のように入力します。

python3 manage.py migrate

「+ migrate +」コマンドが機能しない場合は、おそらく古いバージョンのDjangoを使用している可能性があります。 代わりに、これを入力できます:

python3 manage.py syncdb

このプロセスの一環として、管理ユーザーを作成するように求められます。 ユーザーのユーザー名、メールアドレス、パスワードを選択します。

上記の「+ migrate +」コマンドを使用した場合は、管理ユーザーを手動で作成する必要があります。 次のように入力して、管理ユーザーを作成できます。

python3 manage.py createsuperuser

ユーザーのユーザー名、メールアドレス、パスワードの入力を求められます。

Django設定でALLOWED_HOSTSを変更する

アプリケーションをテストする前に、Django設定のディレクティブの1つを変更する必要があります。

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

nano ~///settings.py

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

角括弧内に、Djangoサーバーに関連付けられているIPアドレスまたはドメイン名をリストします。 各項目は、引用符で囲み、エントリをコンマで区切ってリストする必要があります。 ドメイン全体とサブドメインのリクエストを希望する場合は、エントリの先頭にピリオドを追加します。 以下のスニペットには、デモンストレーションに使用されるコメントアウトされた例がいくつかあります。

〜/ myproject / myproject / settings.py

. . .
# The simplest case: just add the domain name(s) and IP addresses of your Django server
# ALLOWED_HOSTS = [ 'example.com', '203.0.113.5']
# To respond to 'example.com' and any subdomains, start the domain with a dot
# ALLOWED_HOSTS = ['.example.com', '203.0.113.5']
ALLOWED_HOSTS = ['', '', ]

終了したら、ファイルを保存して閉じます。

開発サーバーでテストする

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

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

sudo ufw allow 8000

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

Python 2の場合:

python manage.py runserver 0.0.0.0:8000

Python 3の場合:

python3 manage.py runserver 0.0.0.0:8000

WebブラウザーでサーバーのIPアドレスに続けて「:8000」にアクセスします

:8000

次のようなものが表示されるはずです。

image:https://assets.digitalocean.com/articles/django_1404/django_default.png [Django public page]

次に、URLの末尾に「+ / admin +」を追加して、管理者ログインページに移動します。

:8000/admin

image:https://assets.digitalocean.com/articles/django_1404/django_admin_login.png [Django admin login]

作成した管理者のユーザー名とパスワードを入力すると、サイトの管理者セクションに移動する必要があります。

image:https://assets.digitalocean.com/articles/django_1404/django_admin_page.png [Django管理ページ]

デフォルトのサイトを調べ終わったら、ターミナルで「+ CTRL-C +」と入力して開発サーバーを停止できます。

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

結論

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