CentOS Stream 8
Sponsored Link

Django 3 : インストール
2021/03/15
 
Python Webアプリケーションフレームワーク Django をインストールします。
[1] 必要なパッケージをインストールしておきます。
[root@dlp ~]#
dnf -y install python3-virtualenv
[2] Virtualenv 環境で Django をインストールします。任意の一般ユーザーで実行可能です。
[cent@dlp ~]$
virtualenv venv

[cent@dlp ~]$
cd ~/venv

[cent@dlp venv]$
source bin/activate

(venv) [cent@dlp venv]$
pip install django==3.1

Collecting django==3.1
  Downloading Django-3.1-py3-none-any.whl (7.8 MB)
.....
.....
Installing collected packages: sqlparse, pytz, asgiref, django
Successfully installed asgiref-3.2.10 django-3.1 pytz-2021.1 sqlparse-0.4.1

(venv) [cent@dlp venv]$
django-admin --version

3.1
# virtualenv から exit

(venv) [cent@dlp venv]$
deactivate

[cent@dlp venv]$
[3] テストプロジェクトを作成して動作確認します。
Firewalld 稼働中、且つ、他ホストからも Django にアクセスする場合は、事前に管理者権限で使用するポートを許可しておく必要があります。 (下例の場合は [8000/tcp] を許可)
[cent@dlp ~]$
cd ~/venv

[cent@dlp venv]$
source bin/activate
# testproject 作成

(venv) [cent@dlp venv]$
django-admin startproject testproject

(venv) [cent@dlp venv]$
cd testproject

# データベース設定 (デフォルトは SQLite)

(venv) [cent@dlp testproject]$
python manage.py migrate
# 管理者ユーザー作成

(venv) [cent@dlp testproject]$
python manage.py createsuperuser

Username (leave blank to use 'cent'):
cent

Email address:
cent@dlp.srv.world

Password:
Password (again):
Superuser created successfully.
(venv) [cent@dlp testproject]$
vi testproject/settings.py
# 28行目:他ホストからもアクセスを許可する場合は設定

# 許可ホストはカンマ区切りで複数指定可

# または全て許可する場合は以下のように設定

ALLOWED_HOSTS = [
'*'
]
# サーバー起動

(venv) [cent@dlp testproject]$
python manage.py runserver 0.0.0.0:8000

Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
March 12, 2021 - 05:14:12
Django version 3.1, using settings 'testproject.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.
[4] 任意のクライアントコンピューターで Webブラウザを起動し、[http://(サーバーのホスト名 または IP アドレス):8000/] にアクセスして、以下のようなページが表示されれば OK です。
[5] [http://(サーバーのホスト名 または IP アドレス):8000/admin] にアクセスすると、管理用サイトが利用できます。設定した管理ユーザーでログイン可能です。
[6] 作成したテストプロジェクトでテストアプリケーションを作成し、動作確認します。
[cent@dlp ~]$
cd ~/venv

[cent@dlp venv]$
source bin/activate

(venv)[cent@dlp venv]$
cd testproject

(venv)[cent@dlp testproject]$
python manage.py startapp test_app

(venv)[cent@dlp testproject]$
vi test_app/views.py
# 最終行に追記

from django.http import HttpResponse
def main(request):
    html = '<html>\n' \
           '<body>\n' \
           '<div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;">\n' \
           'Django Test Page\n' \
           '</div>\n' \
           '</body>\n' \
           '</html>\n'
    return HttpResponse(html)

(venv)[cent@dlp testproject]$
vi testproject/urls.py
# 17行目:以下のように追記

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('test_app/', include('test_app.urls')),
]

(venv)[cent@dlp testproject]$
vi test_app/urls.py
# 新規作成

from django.urls import path
from .views import main

urlpatterns = [
    path('', main, name='home')
]

(venv)[cent@dlp testproject]$
vi testproject/settings.py
# 33行目:[INSTALLED_APPS] にテストアプリ追記

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'test_app',
)

(venv)[cent@dlp testproject]$
python manage.py runserver 0.0.0.0:8000

[7] 任意のクライアントコンピューターで Webブラウザを起動し、設定した URL [http://(サーバーのホスト名 または IP アドレス):8000/test_app/] にアクセスして、以下のようなページが表示されれば OK です。
関連コンテンツ