序章

Django は、動的なWebサイトとアプリケーションを開発するためのフル機能のPythonWebフレームワークです。 Djangoを使用すると、Python Webアプリケーションをすばやく作成し、フレームワークを利用して手間のかかる作業を大幅に行うことができます。

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

さまざまな方法

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

さまざまな方法のいくつかが含まれます:

  • パッケージからのグローバルインストール:公式のUbuntuリポジトリには、従来の方法でインストールできるDjangoパッケージが含まれています apt パッケージマネージャー。 これは単純ですが、他の方法ほど柔軟ではありません。 また、リポジトリに含まれているバージョンは、プロジェクトから入手できる公式バージョンより遅れている可能性があります。
  • 仮想環境にpipを使用してインストールする:次のようなツールを使用して、プロジェクトの自己完結型環境を作成できます。 venvvirtualenv. 仮想環境では、他のプロジェクトごとのカスタマイズやパッケージとともに、大規模なシステムに影響を与えることなく、プロジェクトディレクトリにDjangoをインストールできます。 これは通常、Djangoを使用するための最も実用的で推奨されるアプローチです。
  • git を使用した開発バージョンのインストール:安定版リリースではなく最新の開発バージョンをインストールする場合は、Gitリポジトリからコードを取得できます。 これは、最新の機能/修正を取得するために必要であり、仮想環境内で実行できます。 ただし、開発バージョンには、より安定したバージョンと同じ安定性の保証はありません。

前提条件

始める前に、Ubuntu18.04サーバーでsudo権限を持つroot以外のユーザーを使用できるようにする必要があります。 これを設定するには、Ubuntu18.04初期サーバー設定ガイドに従ってください。

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

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

まず、ローカルパッケージインデックスを次のように更新します apt:

  1. sudo apt update

次に、インストールしたPythonのバージョンを確認します。 18.04にはデフォルトでPython3.6が付属しています。これは、次のように入力することで確認できます。

  1. python3 -V

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

Output
Python 3.6.5

次に、Djangoをインストールします。

  1. sudo apt install python3-django

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

  1. django-admin --version
Output
1.11.11

これは、ソフトウェアが正常にインストールされたことを意味します。 また、Djangoバージョンが最新の安定バージョンではないことに気付くかもしれません。 ソフトウェアの使用方法の詳細については、スキップしてサンプルプロジェクトの作成方法を学習してください。

仮想環境にpipでインストールする

システムにDjangoをインストールする最も柔軟な方法は、仮想環境内です。 で作成する仮想環境にDjangoをインストールする方法を紹介します venv モジュール、標準のPython3ライブラリの一部。 このツールを使用すると、システムの他の部分に影響を与えることなく、仮想Python環境を作成し、Pythonパッケージをインストールできます。 したがって、他のプロジェクトの要件との競合に関係なく、プロジェクトごとにPythonパッケージを選択できます。

ローカルパッケージインデックスを更新することから始めましょう:

  1. sudo apt update

インストールしたPythonのバージョンを確認してください。

  1. python3 -V
Output
Python 3.6.5

次に、インストールしましょう pip Ubuntuリポジトリから:

  1. sudo apt install python3-pip

一度 pip がインストールされている場合は、それを使用してインストールできます venv パッケージ:

  1. sudo apt install python3-venv

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

  1. mkdir ~/newproject
  2. cd ~/newproject

次に、を使用してプロジェクトディレクトリ内に仮想環境を作成します。 python お使いのバージョンのPythonと互換性のあるコマンド。 仮想環境と呼びます my_env、ただし、わかりやすい名前を付ける必要があります。

  1. python3.6 -m venv my_env

これにより、スタンドアロンバージョンのPythonがインストールされます。 pip プロジェクトディレクトリ内の分離されたディレクトリ構造に。 選択した名前でディレクトリが作成され、パッケージがインストールされるファイル階層が保持されます。

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

  1. source my_env/bin/activate

プロンプトは、仮想環境にいることを反映するように変更されます。 それは次のようになります (my_env)username@hostname:~/newproject$.

新しい環境では、次を使用できます pip Djangoをインストールします。 Pythonのバージョンに関係なく、 pip ただ呼ばれるべきです pip 仮想環境にいるとき。 また、を使用する必要がないことに注意してください sudo ローカルにインストールしているので:

  1. pip install django

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

  1. django-admin --version
Output
2.1

お使いのバージョンは、ここに表示されているバージョンと異なる場合があることに注意してください。

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

  1. deactivate

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

  1. cd ~/newproject
  2. source my_env/bin/activate

開発バージョンGitでインストール

Djangoの開発バージョンが必要な場合は、GitリポジトリからDjangoをダウンロードしてインストールできます。 仮想環境内からこれを実行してみましょう。

まず、ローカルパッケージインデックスを更新しましょう。

  1. sudo apt update

インストールしたPythonのバージョンを確認してください。

  1. python3 -V
Output
Python 3.6.5

次に、インストールします pip 公式リポジトリから:

  1. sudo apt install python3-pip

をインストールします venv 仮想環境を作成するためのパッケージ:

  1. sudo apt install python3-venv

次のステップは、Djangoリポジトリのクローンを作成することです。 リリース間で、このリポジトリには、安定性を犠牲にして、より最新の機能とバグ修正が含まれるようになります。 リポジトリをというディレクトリに複製できます ~/django-dev ホームディレクトリ内で次のように入力します。

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

このディレクトリに移動します。

  1. cd ~/django-dev

を使用して仮想環境を作成します python インストールされているバージョンのPythonと互換性のあるコマンド:

  1. python3.6 -m venv my_env

それをアクティブにします:

  1. source my_env/bin/activate

次に、を使用してリポジトリをインストールできます pip. The -e オプションは「編集可能」モードでインストールされます。これは、バージョン管理からインストールする場合に必要です。

  1. pip install -e ~/django-dev

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

  1. django-admin --version
Output
2.2.dev20180802155335

繰り返しますが、表示されるバージョンは、ここに表示されているものと一致しない場合があります。

これで、仮想環境に最新バージョンのDjangoがインストールされました。

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

Djangoをインストールすると、プロジェクトのビルドを開始できます。 プロジェクトを作成し、仮想環境を使用して開発サーバーでテストする方法について説明します。

まず、プロジェクトのディレクトリを作成し、それに変更します。

  1. mkdir ~/django-test
  2. cd ~/django-test

次に、仮想環境を作成します。

  1. python3.6 -m venv my_env

環境をアクティブにします。

  1. source my_env/bin/activate

Djangoをインストールします:

  1. pip install django

プロジェクトをビルドするには、次を使用できます django-admin とともに startproject 指図。 私たちのプロジェクトを呼びます djangoproject、ただし、これを別の名前に置き換えることができます。 startproject 次のようなディレクトリを現在の作業ディレクトリ内に作成します。

  • 管理スクリプト、 manage.py、さまざまなDjango固有のタスクを管理するために使用できます。
  • 実際のプロジェクトコードを含むディレクトリ(プロジェクトと同じ名前)。

ただし、ネストされたディレクトリが多すぎるのを避けるために、管理スクリプトと内部ディレクトリを current ディレクトリに配置するようにDjangoに指示しましょう(末尾のドットに注意してください)。

  1. django-admin startproject djangoproject .

データベースを移行するには(この例ではデフォルトでSQLiteを使用します)、 migrate でコマンド manage.py. Migrations は、Djangoモデルに加えた変更をデータベーススキーマに適用します。

データベースを移行するには、次のように入力します。

  1. python manage.py migrate

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

Output
Operations to perform: Apply all migrations: admin, auth, contenttypes, sessions Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying admin.0003_logentry_add_action_flag_choices... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying auth.0009_alter_user_last_name_max_length... OK Applying sessions.0001_initial... OK

最後に、Djano管理インターフェースを使用できるように管理ユーザーを作成しましょう。 でこれをやってみましょう createsuperuser 指図:

  1. python manage.py createsuperuser

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

Django設定でALLOWED_HOSTSを変更する

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

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

  1. nano ~/django-test/djangoproject/settings.py

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

角かっこ内に、Djangoサーバーに関連付けられているIPアドレスまたはドメイン名をリストします。 各項目は引用符で囲み、個別のエントリをコンマで区切ってリストする必要があります。 ドメイン全体とサブドメインのリクエストが必要な場合は、エントリの先頭にピリオドを追加します。

〜/ django-test / djangoproject / settings.py
. . .
ALLOWED_HOSTS = ['your_server_ip_or_domain', 'your_second_ip_or_domain', . . .]

終了したら、ファイルを保存してエディターを終了します。

開発サーバーのテスト

ユーザーができたら、Django開発サーバーを起動して、新しいDjangoプロジェクトがどのように見えるかを確認できます。 これは開発目的でのみ使用してください。 デプロイする準備ができたら、Djangoのデプロイに関するガイドラインに注意深く従ってください。

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

  1. sudo ufw allow 8000

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

  1. python manage.py runserver your_server_ip:8000

サーバーのIPアドレスにアクセスしてから :8000 Webブラウザで:

http://your_server_ip:8000

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

管理インターフェースにアクセスするには、次を追加します /admin/ URLの最後まで:

http://your_server_ip:8000/admin/

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

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

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

デフォルトサイトの確認が終了したら、次のように入力して開発サーバーを停止できます。 CTRL-C あなたのターミナルで。

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

結論

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

モデルビューなどの詳細な説明など、Djangoの操作に関する詳細については、Django開発シリーズを参照してください。