序章

Djangoは、Pythonで記述された無料のオープンソースWebフレームワークであり、そのコア原則はスケーラビリティ、再利用性、および迅速な開発です。 また、フレームワークレベルの一貫性と緩い結合で知られており、個々のコンポーネントを互いに独立させることができます。

このチュートリアルでは、Ubuntu20.04サーバー上に開発目的用のDjango環境をセットアップします。 ライブWebサイトの場合、データベースへの接続、ドメイン名の設定、セキュリティのレイヤーの追加など、追加の考慮事項があります。 Djangoタグでビルドする際のサポートに役立つDjangoに関するさまざまなチュートリアルがあります。

前提条件

このチュートリアルを完了するには、次のものが必要です。

  • sudo権限を持つroot以外のユーザーアカウント。これは、Ubuntu20.04チュートリアルの初期サーバーセットアップに従って実行できます。

  • Python3は仮想プログラミング環境でセットアップされています。 この設定は、Python3インストールガイドから入手できます。

ステップ1—Djangoをインストールする

仮想環境内にPythonパッケージマネージャーの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アプリケーションを作成して実行できます。

  1. pip install django

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

  1. django-admin --version

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

Output
3.0.6

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

ステップ2—ファイアウォール設定の調整

サーバーの初期設定チュートリアルに従った場合、またはサーバーでファイアウォールを実行している場合は、サーバーのファイアウォールで使用するポートを開く必要があります。 UFWファイアウォールの場合、次のコマンドでポートを開くことができます。

  1. sudo ufw allow 8000

DigitalOceanファイアウォールを使用している場合は、インバウンドルールからHTTPを選択できます。 インバウンドルールを変更することで、DigitalOceanファイアウォールとそのルールの作成について詳しく読むことができます。

ステップ3—プロジェクトを開始する

これで、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 asgi.py settings.py urls.py wsgi.py

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

  • __init__.pyは、Pythonプロジェクトのエントリポイントとして機能します。
  • asgi.pyには、非同期サーバーゲートウェイインターフェイスまたは ASGI へのオプションの展開の構成が含まれています。これは、同期および非同期のいずれかのアプリの標準を提供し、WSGIの後継と見なされます(下記参照)。
  • settings.pyは、Djangoインストールの構成を記述し、Djangoに使用可能な設定を通知します。
  • urls.pyには、urlpatternsリストが含まれており、URLをviewsにルーティングおよびマップします。
  • wsgi.pyには、同期Pythonアプリの標準を提供するWeb ServerGatewayInterfaceまたはWSGIの構成が含まれています。

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

ステップ4—Djangoを設定する

これで、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を終了できます。 次に、ブラウザを介してWebアプリにアクセスします。

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

  1. python manage.py createsuperuser

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

ステップ5—DjangoWebアプリへのアクセス

構成が完了したら、必ず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/

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

Django Default Page

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

管理インターフェースにアクセスするには、URLの末尾に/admin/を追加します。

http://your_server_ip:8000/admin/

これにより、ログイン画面が表示されます。

Django admin login

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

Django admin page

Django管理インターフェースの操作の詳細については、「Django管理インターフェースを有効にして接続する方法」を参照してください。

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

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

  1. deactivate

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

結論

このチュートリアルでは、Djangoを正常にインストールし、Djangoアプリでの作業を開始するための開発環境をセットアップしました。

これで、DjangoWebアプリケーションの構築を開始するために必要な基盤ができました。