序章

Djangoは、Pythonで記述された無料のオープンソースWebフレームワークであり、モデルテンプレートビュー(MTV)ソフトウェアアーキテクチャパターンに準拠しています。 MTVパターンは、 model–view–controller(MVC)パターンに対するDjangoの見解です。 Django Software Foundationによると、 model はデータの唯一の決定的なソースであり、 view は、Pythonコールバックfunction[を介してユーザーに表示されるデータを記述します。 X215X]を特定のURLに追加し、 template は、DjangoがHTMLを動的に生成する方法です。

Djangoのコア原則は、スケーラビリティ、再利用性、および迅速な開発です。 また、フレームワークレベルの一貫性と緩い結合で知られており、個々のコンポーネントを互いに独立させることができます。 繰り返さないでください( DRYプログラミング)は、Djangoの原則の不可欠な部分です。

このチュートリアルでは、Django開発環境をセットアップします。 DjangoでWebアプリケーションを開発するために必要なツールを提供するために、Python 3、pip 3、Django、およびvirtualenvをインストールします。

前提条件

DebianまたはUbuntuLinuxサーバーで設定されたsudo権限を持つ非rootユーザーアカウント。 これらの前提条件を達成するには、Debian 8 初期サーバー設定、または Ubuntu 16.04チュートリアルの初期サーバー設定の手順1〜4を実行します。

ステップ1—Pythonとpipをインストールします

Pythonをインストールするには、最初にローカルAPTリポジトリを更新する必要があります。 ターミナルウィンドウで、次のコマンドを入力します。 -yフラグは、アップグレードプロセス中のプロンプトに対して「はい」と答えることに注意してください。 プロンプトごとにアップグレードを停止する場合は、フラグを削除します。

  1. sudo apt-get update && sudo apt-get -y upgrade

grub-pcを構成するように求められたら、ENTERを押してデフォルトを受け入れるか、必要に応じて構成できます。

Django SoftwareFoundationはPython3を使用することを推奨しているため、すべてが更新されたら、次のコマンドを使用してPython3をインストールできます。

  1. sudo apt-get install python3

Python 3が正常にインストールされたことを確認するには、python3コマンドを使用してバージョンチェックを実行します。

  1. python3 -V

結果の出力は次のようになります。

Output
python 3.5.2

Python 3がインストールされたので、PythonのパッケージリポジトリであるPyPiからパッケージをインストールするには、pipも必要になります。

  1. sudo apt-get install -y python3-pip

pipが正常にインストールされたことを確認するには、次のコマンドを実行します。

  1. pip3 -V

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

Output
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)

pipがインストールされたので、Python環境に必要な他のパッケージをすばやくインストールできます。

ステップ2—virtualenvをインストールします

virtualenv は、仮想環境であり、含まれている開発スペースにソフトウェアとPythonパッケージをインストールできます。これにより、インストールされたソフトウェアとパッケージがマシンの他のグローバル環境から分離されます。 この便利な分離により、競合するパッケージやソフトウェアが相互に作用するのを防ぎます。

virtualenvをインストールするには、以下に示すように、pip3コマンドを使用します。

  1. pip3 install virtualenv

インストールしたら、バージョンチェックを実行して、インストールが正常に完了したことを確認します。

  1. virtualenv --version

次の出力、または同様のものが表示されるはずです。

Output
virtualenv 20.0.20 from /home/sammy/.local/lib/python3.5/site-packages/virtualenv/__init__.py

virtualenvが正常にインストールされました。

この時点で、Django Webアプリケーションとそれに関連するソフトウェアの依存関係を、システム上の他のPythonパッケージまたはプロジェクトから分離できます。

ステップ3—Djangoをインストールします

Djangoをインストールするには3つの方法があります。 このチュートリアルでは、インストールのpipメソッドを使用しますが、参照用に使用可能なすべてのオプションについて説明しましょう。

  • オプション1:virtualenv内にDjangoをインストールします。これは、サーバーのグローバル環境からDjangoのバージョンを分離する必要がある場合に最適です。

  • オプション2:ソースからDjangoをインストールします。最新のソフトウェアが必要な場合、またはUbuntu APTリポジトリが提供するものよりも新しいものが必要な場合は、ソースから直接インストールできます。 ソフトウェアのバージョンを最新の状態にしたい場合は、このインストール方法を選択するために常に注意とメンテナンスが必要であることに注意してください。

  • オプション3:pipを使用してDjangoをグローバルにインストールします。 Djangoをグローバルにインストールするため、使用するオプションはpip3です。

仮想環境内でpipを使用してDjangoをインストールします。 プログラミング環境のセットアップと利用に関する詳細なガイダンスと情報については、仮想環境のセットアップに関するこのチュートリアルを確認してください。

サーバーのホームディレクトリにいる間に、Djangoアプリケーションを含むディレクトリを作成する必要があります。 次のコマンドを実行して、django-appsまたは任意の別の名前のディレクトリを作成します。 次に、ディレクトリに移動します。

  1. mkdir django-apps
  2. cd django-apps

django-apps ディレクトリ内で、仮想環境を作成します。 それをenvと呼びましょう。

  1. virtualenv env

次に、次のコマンドを使用して仮想環境をアクティブ化します。

  1. . env/bin/activate

プレフィックスが(env)に変更されると、アクティブになっていることがわかります。これは、現在のディレクトリに応じて、次のようになります。

環境内で、pipを使用してDjangoパッケージをインストールします。 Djangoをインストールすると、Djangoアプリケーションを作成して実行できます。 Djangoの詳細については、 DjangoDevelopmentに関するチュートリアルシリーズをお読みください。

  1. pip install django

インストールしたら、バージョンチェックを実行してDjangoのインストールを確認します。

  1. django-admin --version

これ、または同様のものが結果の出力になります。

Output
2.2.12

サーバーにDjangoがインストールされたら、テストプロジェクトの作成に進み、すべてが正しく機能していることを確認できます。

ステップ4—Djangoテストプロジェクトを作成する

Djangoのインストールをテストするために、スケルトンWebアプリケーションを作成します。

ファイアウォールルールの設定

まず、該当する場合は、サーバーのファイアウォールで使用するポートを開く必要があります。 UFWを使用している場合(初期サーバーセットアップガイドで詳しく説明されています)、次のコマンドでポートを開くことができます。

  1. sudo ufw allow 8000

DigitalOceanファイアウォールを使用している場合は、インバウンドルールからHTTPを選択できます。 DigitalOceanファイアウォールとそのルールの作成について詳しくは、入門チュートリアルインバウンドルールのセクションをご覧ください。

プロジェクトの開始

これで、Pythonの管理タスク用のコマンドラインユーティリティであるdjango-adminを使用してアプリケーションを生成できます。 次に、startprojectコマンドを使用して、テストWebサイトのプロジェクトディレクトリ構造を作成できます。

django-appsディレクトリにいる間に、次のコマンドを実行します。

  1. django-admin startproject testsite

注: django-admin startproject <projectname>コマンドを実行すると、プロジェクトディレクトリとプロジェクトパッケージの両方に<projectname>という名前が付けられ、コマンドが実行されたディレクトリにプロジェクトが作成されます。 オプションの<destination>パラメーターが指定されている場合、Djangoは指定された宛先ディレクトリをプロジェクトディレクトリとして使用し、その中にmanage.pyとプロジェクトパッケージを作成します。

これで、作成されたばかりのプロジェクトファイルを確認できます。 testsiteディレクトリに移動し、そのディレクトリの内容を一覧表示して、作成されたファイルを確認します。

  1. cd testsite
  1. ls
Output
manage.py testsite

このディレクトリにmanage.pyという名前のファイルとtestsiteという名前のフォルダが含まれていることを示す出力があります。 manage.pyファイルはdjango-adminに似ており、プロジェクトのパッケージをsys.pathに配置します。 これにより、プロジェクトのsettings.pyファイルを指すようにDJANGO_SETTINGS_MODULE環境変数も設定されます。

次のようにlessコマンドを実行すると、端末でmanage.pyスクリプトを表示できます。

  1. less manage.py

スクリプトを読み終えたら、qを押して、ファイルの表示を終了します。

次に、testsiteディレクトリに移動して、作成された他のファイルを表示します。

  1. cd testsite/

次に、次のコマンドを実行して、ディレクトリの内容を一覧表示します。

  1. ls

4つのファイルが表示されます。

Output
__init__.py settings.py urls.py wsgi.py

これらの各ファイルが何であるかを見てみましょう。

  • __init__.pyは、Pythonプロジェクトのエントリポイントとして機能します。
  • settings.pyは、Djangoインストールの構成を記述し、Djangoに使用可能な設定を通知します。
  • urls.pyには、urlpatternsリストが含まれており、URLをviewsにルーティングおよびマップします。
  • wsgi.pyには、Webサーバーゲートウェイインターフェイスの構成が含まれています。 Webサーバーゲートウェイインターフェイス( WSGI )は、Webサーバーとアプリケーションを展開するためのPythonプラットフォーム標準です。

注:デフォルトのファイルが生成されましたが、展開のニーズに合わせていつでもwsgi.pyを微調整することができます。

Webサイトを開始して表示する

これで、runserverコマンドを実行して、サーバーを起動し、指定されたホストとポートでWebサイトを表示できます。

~/test_django_app/testsite/testsite/にあるsettings.pyファイルのALLOWED_HOSTSのリストにサーバーのIPアドレスを追加する必要があります。

Django docs に記載されているように、ALLOWED_HOSTS変数には、「このDjangoサイトが提供できるホスト/ドメイン名を表す文字列のリストが含まれています。 これは、HTTPホストヘッダー攻撃を防ぐためのセキュリティ対策です。これは、一見安全に見える多くのWebサーバー構成でも可能です。」

お気に入りのテキストエディタを使用して、IPアドレスを追加できます。 たとえば、nanoを使用している場合は、次のコマンドを実行するだけです。

  1. nano ~/django-apps/testsite/testsite/settings.py

コマンドを実行したら、ドキュメントの[許可されたホスト]セクションに移動し、一重引用符または二重引用符で囲まれた角かっこ内にサーバーのIPアドレスを追加します。

settings.py
"""
Django settings for testsite project.

Generated by 'django-admin startproject' using Django 2.0.
...
"""
...
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

# Edit the line below with your server IP address
ALLOWED_HOSTS = ['your-server-ip']
...

CTRL + xキーを押しながらyキーを押すと、変更を保存してnanoを終了できます。

これが完了したら、必ずmanage.pyが配置されているディレクトリに戻ってください。

  1. cd ~/django-apps/testsite/

次に、your-server-ipテキストをサーバーのIPに置き換えて次のコマンドを実行します。

  1. python manage.py runserver your-server-ip:8000

最後に、以下のリンクに移動して、スケルトンWebサイトがどのように表示されるかを確認し、強調表示されたテキストをサーバーの実際のIPに置き換えます。

http://your-server-ip:8000/

ページが読み込まれると、次のようなWebページが表示されます。

Django Default Page

これにより、Djangoが正しくインストールされ、テストプロジェクトが正しく機能していることが確認されます。

アプリのテストが終了したら、CTRL + Cを押して、runserverコマンドを停止できます。 これにより、プログラミング環境に戻ります。

Python環境を終了する準備ができたら、deactivateコマンドを実行できます。

  1. deactivate

プログラミング環境を非アクティブ化すると、ターミナルコマンドプロンプトに戻ります。

結論

このチュートリアルでは、UbuntuAPTリポジトリから入手できる最新バージョンのPython3に正常にアップグレードしました。 また、pip 3、virtualenv、およびdjangoもインストールしました。

これで、DjangoWebアプリケーションの構築を開始するために必要なツールが手に入りました。