記事を書こうと思った経緯
Djangoにてアプリを開発する際、毎回、調べながら初期設定を行っているので、自分なりにまとめてみることにした。
目次
・Djangoのインストール
・プロジェクトの作成
・アプリの作成
・settings.pyの設定
・テンプレートフォルダ、staticフォルダの作成、反映
・起動確認
Djangoのインストール
pip install Django
version指定の場合はDjango~=4.2.0とする
プロジェクトの作成
プロジェクトとは、Djangoにおけるアプリの置き場のようなもの。
作成したプロジェクトの中に複数のアプリを作成することができる。
以下を入力する。
django-admin startproject プロジェクト名 .
すると、プロジェクト名のファイルと、manage.pyのファイルが作成される。
現在のディレクトリにファイルを作成したいので .
をつける
アプリの作成
以下を入力することによりアプリを作成することができる
python manage.py startapp アプリ名
すると、アプリ名のファイルが作成される
settings.pyの設定
プロジェクトのsettings.pyの設定を変更しなければならない。
言語変更
日本語に変更
LANGUAGE_CODE = 'en-us'
↓
LANGUAGE_CODE = 'ja'
基準時間変更
東京に変更
TIME_ZONE = 'UTC'
↓
TIME_ZONE = 'Asia/Tokyo'
アプリを追加
アプリの設定をプロジェクト全体で有効にするため
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
↓
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'アプリ名'
]
変更したものを反映させる
python3 manage.py migrate
↓こんなものが出ればOK
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
テンプレートフォルダ、staticフォルダの作成、反映
今回はtemplates
とstatic
というファイル名を作成。
templates
にはテンプレートを。static
には、CSSファイルや画像を。
今回はこういったディレクトリ構造にした。
├── MainApp
├── accounts
├── db.sqlite3
├── manage.py
├── myenv
├── mysite
├── requirements.txt
├── static
│ └── css
└── templates
├── accounts
└── base.html
settings.pyのTEMPLATESのDIRSにos.path.join(BASE_DIR, 'templates')
を追加
import os #インポート部分に記載しておく
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
os.path.join(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',
],
},
},
]
これで、テンプレートを作成したあと、アプリに反映されるようになる。
また、CSSファイルをテンプレートに反映させるため、settings.pyに以下を入力
STATIC_URL = '/static/'
STATICFILES_DIRS = [
BASE_DIR / "static",
]
HTMLに以下を入力することでCSSが反映される
<link rel="stylesheet" href="{% static 'css/style.css' %}">
STATICFILES_DIRS = [
BASE_DIR / "static",
]
これを入力することで、djangoがcssフォルダのルートを探し出してくれる。
条件は、staticフォルダにいれること。staticフォルダに入れておくと、自動的にルートを探し出してくれる。アプリごとにtemplatesフォルダを作成すると、上記を入力しないで済む。
起動確認
以下を入力してアプリを起動させる。無事に起動できれば初期設定完了である。
python manage.py runserver
感想
テンプレートの設定を行っていなくて、アプリに反映されずパニックになっていたが、今回の学習で理解した。初学者の参考になれば幸いです。