1. Djangoの開発環境を構築

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

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

1-1. パッケージからのグローバルインストール
  • 参考URL:DigitalOcean
  • Windows11 WSL:Linux 用 Windows サブシステム ディストリビューション
  • OS:“Ubuntu 22.04.1 LTS”
  • Python 3.10.6
  • pip 22.3.1 from /home/matsu/.local/lib/python3.10/site-packages/pip (python 3.10)
sudo apt update
python3 -V
Output
 Python 3.10.6
sudo apt install python3-django

django-admin --version
Output
 4.1.4・・・OK
1-2. サンプルプロジェクトの作成

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

  • プロジェクトのディレクトリを作成
mkdir ~/django-test
cd ~/django-test
  • 仮想環境を作成します。
python3 -m venv my_env
  • 環境をアクティブ化します。
source my_env/bin/activate
(my_env) matsu@RYZEN-PC:~/workspace/django-test$ 
  • Djangoをインストールします。
pip install django
(or pip install django==4.1.4) 
Output
Collecting django
  Using cached Django-4.1.4-py3-none-any.whl (8.1 MB)
Collecting sqlparse>=0.2.2
  Using cached sqlparse-0.4.3-py3-none-any.whl (42 kB)
Collecting asgiref<4,>=3.5.2
  Using cached asgiref-3.6.0-py3-none-any.whl (23 kB)
Installing collected packages: sqlparse, asgiref, django
Successfully installed asgiref-3.6.0 django-4.1.4 sqlparse-0.4.3
  • プロジェクトをビルドするには、次のコマンドと共に使用できます。私たちは私たちのプロジェクトを呼び出しますが、これを別の名前に置き換えることができます。 現在の作業ディレクトリ内に、以下を含むディレクトリが作成されます。django-admin,startproject,djangoproject,startproject

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

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

(my_env) matsu@RYZEN-PC:~/workspace/django-test$ django-admin startproject djangoproject .

drwxr-xr-x  2 matsu matsu 4096 Dec 25 00:23 djangoproject/
-rwxr-xr-x  1 matsu matsu  669 Dec 25 00:23 manage.py*
drwxr-xr-x  5 matsu matsu 4096 Dec 25 00:16 my_env/
  • データベースを移行するには (この例ではデフォルトで SQLite を使用します)、 でコマンドを使用しましょう。移行では、Django モデルに加えた変更がデータベース スキーマに適用されます。migratemanage.py

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

(my_env) matsu@RYZEN-PC:~/workspace/django-test$ 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 auth.0010_alter_group_name_max_length... OK
  Applying auth.0011_update_proxy_permissions... OK
  Applying auth.0012_alter_user_first_name_max_length... OK
  Applying sessions.0001_initial... OK
  • 最後に、Djano 管理インターフェイスを使用できるように管理ユーザーを作成しましょう。次のコマンドでこれをやってみましょう:createsuperuser
(my_env) matsu@RYZEN-PC:~/workspace/django-test$ python manage.py createsuperuser

(Input)
Username (leave blank to use 'matsu'): 
Email address: matsu.0123n@gmail.com
Password: xxxx
Password (again): xxxx
Superuser created successfully.
1-3. Django 設定でのALLOWED_HOSTSの変更

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

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

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

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

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

ALLOWED_HOSTS = ['your_server_ip_or_domain', 'your_second_ip_or_domain', . . .]

WSLの場合:
ifconfig : 172.18.242.123
ALLOWED_HOSTS = ['172.18.242.123']
1-4. 開発サーバーのテスト

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

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

(my_env) ~/workspace/django-test$ sudo ufw allow 8000

Output
[sudo] password for matsu: 
Rules updated
Rules updated (v6)
  • 開発サーバーを起動します。
(my_env) matsu@RYZEN-PC:~/workspace/django-test$ python manage.py runserver 172.18.242.123:8000
  • http://172.18.242.123:8000/

  • 管理インターフェースにアクセスするには、URL の末尾に追加します。/admin/
  • http://172.18.242.123:8000/admin/
  • 作成した管理者のユーザー名とパスワードを入力すると、サイトのメインの管理セクションにアクセスできます。

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

既定のサイトを確認したら、ターミナルに入力して開発サーバーを停止できます。CTRL-C

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

2. まとめ

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

モデルビューなどの詳細な議論を含め、Django の操作に関する詳細情報が必要な場合は、Django 開発シリーズを参照してください。

以上