Ubuntu 22.04にDjangoをインストールして開発環境をセットアップする方法

はじめに

Djangoは、Pythonで書かれたフリーかつオープンソースのWebフレームワークであり、そのコア原則は拡張性、再利用性、および迅速な開発にあります。また、フレームワークレベルでの一貫性と疎結合性でも知られており、個々のコンポーネントが互いに独立していることが可能です。

このチュートリアルでは、Ubuntu 22.04サーバー上で開発目的のDjango環境を構築します。ライブウェブサイトでは、データベースへの接続、ドメイン名の設定、およびセキュリティの追加など、追加の考慮事項があります。Djangoを使用して構築する際にサポートとなる、さまざまなチュートリアルがあります。Djangoのタグでサポートを受けながら構築してください。

前提条件

このチュートリアルを完了するには、以下が必要です:

  • sudo権限を持つノンルートユーザーアカウント。これは、Ubuntu 22.04の初期サーバーセットアップチュートリアルを参照して、完了させることができます。

  • Python 3を仮想プログラミング環境でセットアップします。これは、Python 3インストールガイドを通じて設定できます。

ステップ1 — Djangoのインストール

Djangoをインストールするためのいくつかの方法があります。Pythonパッケージマネージャーのpipを使用して、仮想環境内にインストールします。

サーバーのホームディレクトリ内で、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
4.0.6

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

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

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

  1. sudo ufw allow 8000

「DigitalOcean Firewalls」を使用している場合は、入力ルールからHTTPを選択できます。 「DigitalOcean Firewalls」について詳しくは、入力ルールを変更してルールを作成する方法について詳しく説明されています。

ステップ3 — プロジェクトの開始

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

  1. django-admin startproject testsite

ディレクトリdjango-appsにいる間に、次のコマンドを実行します:注: 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 に配置します。また、これは DJANGO_SETTINGS_MODULE 環境変数をプロジェクトの settings.py ファイルを指すように設定します。

ターミナルで 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 には、同期および非同期のアプリ向けのオプションのデプロイメント構成が含まれており、Asynchronous Server Gateway Interface(ASGI)への標準を提供します。これは、同期および非同期のアプリ向けの標準であり、WSGI の後継と見なされています(以下参照)。
  • settings.py は Django インストールの設定を記述し、Django に使用可能な設定を通知します。
  • urls.py には、URL をその views にルーティングおよびマッピングする urlpatterns リストが含まれています。
  • wsgi.pyは、WebサーバーゲートウェイインターフェイスまたはWSGIの構成を含んでおり、これは同期Pythonアプリケーションの標準を提供します。

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

ステップ4 — Djangoの設定

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

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

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

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

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

一度コマンドを実行したら、ドキュメントのALLOWED_HOSTSセクションに移動して、サーバーのIPアドレスを角括弧内に単一引用符または二重引用符で追加します。

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

Generated by 'django-admin startproject' using Django 4.0.
...
"""
...
# 本番環境ではデバッグを有効にしないでください!
DEBUG = True

# 以下の行をサーバーのIPアドレスに編集します
ALLOWED_HOSTS = ['your-server-ip']
...

変更を保存してnanoを終了するには、CTRL + x キーを押したまま y キーを押します。次に、ウェブアプリにブラウザからアクセスします。

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

  1. python manage.py createsuperuser

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

ステップ5 — Djangoウェブアプリへのアクセス

設定が完了したら、manage.pyがあるディレクトリに戻ってください:

  1. cd ~/django-apps/testsite/

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

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

最後に、以下のリンクに移動して、スケルトンウェブサイトの外観を確認できます。再度、強調表示されたテキストをサーバーの実際のIPに置き換えてください:

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

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

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

管理インターフェースにアクセスするには、URLの末尾に/admin/を追加してください:

http://your_server_ip:8000/admin/

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

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

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

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

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

  1. deactivate

プログラミング環境を無効にすると、端末のコマンドプロンプトに戻ります。

結論

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

Webアプリケーションを構築するために必要な基礎ができました。

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-django-and-set-up-a-development-environment-on-ubuntu-22-04