Ubuntu20.04にDjangoをインストールして開発環境をセットアップする方法
序章
Djangoは、Pythonで記述された無料のオープンソースWebフレームワークであり、そのコア原則はスケーラビリティ、再利用性、および迅速な開発です。 また、フレームワークレベルの一貫性と緩い結合で知られており、個々のコンポーネントを互いに独立させることができます。
このチュートリアルでは、Ubuntu20.04サーバー上に開発目的用のDjango環境をセットアップします。 ライブWebサイトの場合、データベースへの接続、ドメイン名の設定、セキュリティのレイヤーの追加など、追加の考慮事項があります。 Djangoタグでビルドする際のサポートに役立つDjangoに関するさまざまなチュートリアルがあります。
前提条件
このチュートリアルを完了するには、次のものが必要です。
-
sudo
権限を持つroot以外のユーザーアカウント。これは、Ubuntu20.04チュートリアルの初期サーバーセットアップに従って実行できます。 -
Python3は仮想プログラミング環境でセットアップされています。 この設定は、Python3インストールガイドから入手できます。
ステップ1—Djangoをインストールする
仮想環境内にPythonパッケージマネージャーのpipであるDjangoをインストールする方法はいくつかあります。
サーバーのホームディレクトリにいる間に、Djangoアプリケーションを含むディレクトリを作成します。 次のコマンドを実行して、django-appsまたは任意の別の名前のディレクトリを作成します。 次に、ディレクトリに移動します。
- mkdir django-apps
- cd django-apps
django-apps ディレクトリ内で、仮想環境を作成します。 これを一般的なenvと呼びますが、自分とプロジェクトにとって意味のある名前を使用する必要があります。
- virtualenv env
次に、次のコマンドを使用して仮想環境をアクティブ化します。
- . env/bin/activate
プレフィックスが(env)に変更されると、アクティブになっていることがわかります。これは、現在のディレクトリに応じて、次のようになります。
-
環境内で、pipを使用してDjangoパッケージをインストールします。 Djangoをインストールすると、Djangoアプリケーションを作成して実行できます。
- pip install django
インストールしたら、バージョンチェックを実行してDjangoのインストールを確認します。
- django-admin --version
これ、または同様のものが結果の出力になります。
Output3.0.6
サーバーにDjangoがインストールされたら、テストプロジェクトの作成に進み、すべてが正しく機能していることを確認できます。 スケルトンWebアプリケーションを作成します。
ステップ2—ファイアウォール設定の調整
サーバーの初期設定チュートリアルに従った場合、またはサーバーでファイアウォールを実行している場合は、サーバーのファイアウォールで使用するポートを開く必要があります。 UFWファイアウォールの場合、次のコマンドでポートを開くことができます。
- sudo ufw allow 8000
DigitalOceanファイアウォールを使用している場合は、インバウンドルールからHTTP
を選択できます。 インバウンドルールを変更することで、DigitalOceanファイアウォールとそのルールの作成について詳しく読むことができます。
ステップ3—プロジェクトを開始する
これで、Pythonの管理タスク用のコマンドラインユーティリティであるdjango-admin
を使用してアプリケーションを生成できます。 次に、startproject
コマンドを使用して、テストWebサイトのプロジェクトディレクトリ構造を作成できます。
django-apps
ディレクトリにいる間に、次のコマンドを実行します。
- django-admin startproject testsite
注: django-admin startproject <projectname>
コマンドを実行すると、プロジェクトディレクトリとプロジェクトパッケージの両方に<projectname>
という名前が付けられ、コマンドが実行されたディレクトリにプロジェクトが作成されます。 オプションの<destination>
パラメーターが指定されている場合、Djangoは指定された宛先ディレクトリをプロジェクトディレクトリとして使用し、その中にmanage.py
とプロジェクトパッケージを作成します。
これで、作成されたばかりのプロジェクトファイルを確認できます。 testsite
ディレクトリに移動し、そのディレクトリの内容を一覧表示して、作成されたファイルを確認します。
- cd testsite
- ls
Outputmanage.py testsite
このディレクトリにmanage.py
という名前のファイルとtestsite
という名前のフォルダが含まれていることを示す出力があります。 manage.py
ファイルはdjango-admin
に似ており、プロジェクトのパッケージをsys.path
に配置します。 これにより、プロジェクトのsettings.py
ファイルを指すようにDJANGO_SETTINGS_MODULE
環境変数も設定されます。
次のようにless
コマンドを実行すると、端末でmanage.py
スクリプトを表示できます。
- less manage.py
スクリプトを読み終えたら、q
を押して、ファイルの表示を終了します。
次に、testsite
ディレクトリに移動して、作成された他のファイルを表示します。
- cd testsite/
次に、次のコマンドを実行して、ディレクトリの内容を一覧表示します。
- 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
を使用している場合は、次のコマンドを実行します。
- nano ~/django-apps/testsite/testsite/settings.py
コマンドを実行したら、ドキュメントの[許可されたホスト]セクションに移動し、一重引用符または二重引用符で囲まれた角かっこ内にサーバーのIPアドレスを追加します。
"""
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
コマンドでこれを実行しましょう。
- python manage.py createsuperuser
ユーザーのユーザー名、電子メールアドレス、およびパスワードの入力を求められます。
ステップ5—DjangoWebアプリへのアクセス
構成が完了したら、必ずmanage.py
が配置されているディレクトリに戻ってください。
- cd ~/django-apps/testsite/
次に、your-server-ipテキストをサーバーのIPに置き換えて次のコマンドを実行します。
- python manage.py runserver your-server-ip:8000
最後に、以下のリンクに移動して、スケルトンWebサイトがどのように表示されるかを確認し、強調表示されたテキストをサーバーの実際のIPに置き換えます。
http:/
ページが読み込まれると、次のように表示されます。
これにより、Djangoが正しくインストールされ、テストプロジェクトが正しく機能していることが確認されます。
管理インターフェースにアクセスするには、URLの末尾に/admin/
を追加します。
http://your_server_ip:8000/admin/
これにより、ログイン画面が表示されます。
作成した管理者のユーザー名とパスワードを入力すると、サイトのメインの管理者セクションにアクセスできます。
Django管理インターフェースの操作の詳細については、「Django管理インターフェースを有効にして接続する方法」を参照してください。
アプリのテストが終了したら、CTRL
+ C
を押して、runserver
コマンドを停止できます。 これにより、プログラミング環境に戻ります。
Python環境を終了する準備ができたら、deactivate
コマンドを実行できます。
- deactivate
プログラミング環境を非アクティブ化すると、ターミナルコマンドプロンプトに戻ります。
結論
このチュートリアルでは、Djangoを正常にインストールし、Djangoアプリでの作業を開始するための開発環境をセットアップしました。
これで、DjangoWebアプリケーションの構築を開始するために必要な基盤ができました。