LoginSignup
2

More than 1 year has passed since last update.

マジで0からDjango② 諸設定編 - settings.py を編集しよう

Last updated at Posted at 2022-06-08

現在の状況

さて、前回せっかくブラウザ上で表示するところまでこぎ着けたわけだが、

現在のディレクトリ構成
  dev/django
- └─── mysite
          ├─── manage.py
          ├─── myapp
          │       ├─── migrations
          │       │       └───__init__.py
          │       ├─── __init__.py
          │       ├─── admin.py
          │       ├─── apps.py
          │       ├─── models.py
          │       ├─── tests.py
          │       └─── views.py
-         └─── mysite
                  ├─── __init__.py
                  ├─── asgi.py
                  ├─── settings.py
                  ├─── urls.py
                  └─── wsgi.py

mysite が重複していてややこしいので一旦作り直す
必要に応じて cd する。1階層上に上がりたければ cd ../ しよう。

Terminal
dev/django/mysite> cd ../
dev/django>

ディレクトリの削除

削除は rm 削除したいディレクトリ でできる。

Terminal
dev/django>rm mysite

確認
C:\Users\cloud\dev\django\mysite の項目には子があり、Recurse パラメーターが指定されていませんでした。続行した場合、項目と共にすべての子が削除されます。続行しますか?
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"):

すると今回はディレクトリが空じゃないので確認 (警告) が出る。Yを入力してディレクトリを消す。

Terminal
  dev/django>rm mysite

  確認
  C:\Users\cloud\dev\django\mysite の項目には子があり、Recurse パラメーターが指定されていませんでした。続行した場合、項目と共にすべての子が削除されます。続行しますか?
  [Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"): 
+ Y

  dev/django>

ちなみに -R を追記すると確認を出さずに消すことができる。

Terminal
dev/django>rm mysite -R
dev/django>

ディレクトリを作り直す

前回やった内容を再度やるだけ。

ただ、作成するディレクトリ名と階層が前回と異なる

目標ディレクトリ構築
  dev/django
  └─── mysite
          ├─── manage.py
+         ├─── config
          │       ├─── __init__.py
          │       ├─── asgi.py
          │       ├─── settings.py
          │       ├─── urls.py
          │       └─── wsgi.py
          ├─── myapp
          │       ├─── migrations
          │       │       └───__init__.py
          │       ├─── __init__.py
          │       ├─── admin.py
          │       ├─── apps.py
          │       ├─── models.py
          │       ├─── tests.py
          │       └─── views.py
+         ├─── static
+         └─── templates

ディレクトリ作成

mkdir 作成するディレクトリ名 でディレクトリを作成する。
mkdir は "MaKe DIRectory" の意。必要に応じて cd する。

Terminal
dev/django> mkdir mysite

ディレクトリ: C:\Users\dev\django

Mode   LastWriteTime Length Name
----   ------------- ------ ----
d----- 1601/01/01     00:00 mysite

dev/django>
現在のディレクトリ構成
  dev/django
+ └─── mysite

続いて作成したディレクトリに移動

Terminal
dev/django> cd mysite
dev/django/mysite>

プロジェクトを作成

startproject 作成するディレクトリ名 作成する階層
前回と異なるのは、作成する階層 という引数を与えていること。
. は同階層の意。mkdir ./aaa と打てば同階層に aaa というフォルダができる。

Terminal
dev/django/mysite> django-admin startproject config .
dev/django/mysite>

または

Terminal
dev/django/mysite> py -m django startproject config .
dev/django/mysite>

成功の旨は出ないがディレクトリが増えている。

現在のディレクトリ構成
  dev/django
  └─── mysite
+         ├─── manage.py
+         └─── config
+                 ├─── __init__.py
+                 ├─── asgi.py
+                 ├─── settings.py
+                 ├─── urls.py
+                 └─── wsgi.py

static と templates フォルダの作成

同じ階層に statictemplates フォルダも作成しておく

Terminal
dev/django/mysite>mkdir static
dev/django/mysite>mkdir templates

static
CSS, JavaScript, Images などの静的なファイルを格納するフォルダ。

templates
HTML を格納するフォルダ。

現在のディレクトリ構成
  dev/django
  └─── mysite
          ├─── manage.py
          ├─── config
          │       ├─── __init__.py
          │       ├─── asgi.py
          │       ├─── settings.py
          │       ├─── urls.py
          │       └─── wsgi.py
+         ├─── static
+         └─── templates

Webアプリを作成

Terminal
dev/django/mysite> py manage.py startapp myapp
dev/django/mysite>
現在のディレクトリ構成
  dev/django
  └─── mysite
          ├─── manage.py
          ├─── config
          │       ├─── __init__.py
          │       ├─── asgi.py
          │       ├─── settings.py
          │       ├─── urls.py
          │       └─── wsgi.py
+         ├─── myapp
+         │       ├─── migrations
+         │       │       └───__init__.py
+         │       ├─── __init__.py
+         │       ├─── admin.py
+         │       ├─── apps.py
+         │       ├─── models.py
+         │       ├─── tests.py
+         │       └─── views.py
          ├─── static
          └─── templates

設定の変更

設定ファイルである config/settings.py を編集する。

言語

LANGUAGE_CODE'en-us' から 'ja' に書き換える。
スクロールして探しても良いが、 Ctrl + F で検索する方が楽。

mysite/config/settings.py
- LANGUAGE_CODE = 'en-us'
+ LANGUAGE_CODE = 'ja'

タイムゾーン

TIME_ZONE'UTC' から 'Asia/Tokyo' にする。
先ほど編集した LANGUAGE_CODE のすぐ下にある。

mysite/config/settings.py
- TIME_ZONE = 'UTC'
+ TIME_ZONE = 'Asia/Tokyo'

参照先

先ほど作成した statictemplates を参照先として登録する。

mysite/config/settings.py
  TEMPLATES = [
      {
          'BACKEND': 'django.template.backends.django.DjangoTemplates',
-         'DIRS': [],
+         'DIRS': [Path(BASE_DIR) / 'templates'],
          'APP_DIRS': True,
          'OPTIONS': {
              'context_processors': [
                  'django.template.context_processors.debug',
                  'django.template.context_processors.request',
                  'django.contrib.auth.context_processors.auth',
                  'django.contrib.messages.context_processors.messages',
              ],
          },
      },
  ]
  
 ~~~~~~~~~~~~~~~~~~~~
  
  STATIC_URL = 'static/'
+ STATIC_ROOT = Path(BASE_DIR) / 'static'

作成したアプリを登録

作成したアプリ myapp を登録する。

mysite/config/settings.py
  INSTALLED_APPS = [
      'django.contrib.admin',
      'django.contrib.auth',
      'django.contrib.contenttypes',
      'django.contrib.sessions',
      'django.contrib.messages',
      'django.contrib.staticfiles',
+     'myapp',
  ]

末尾に書き足すだけでOK。, で終わっても問題ない。

起動確認

runserver で起動するかどうかを確認

Terminal
dev/django/mysite> py manage.py runserver

ブラウザ上で http://127.0.0.1:8000/ にアクセスして表示されたらOK。

マジで0からDjangoシリーズ

次回アプリ作成編

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2