はじめに
ここでは、Djangoを始めるにあたって最低限必要になるコマンドについて解説していきます。
Djangoプロジェクトの作成
新しいDjangoプロジェクトを作成するには、新規プロジェクト用のディレクトリに移動した上で、以下のコマンドを実行します。
django-admin startproject プロジェクト名
作成されるフォルダ階層を1つ分減らしたい場合は、プロジェクト名の後に .
(半角スペースとピリオド)を追記します。
僕は、プロジェクト名をつけたディレクトリで以下のコマンドを実行することが多いです。
django-admin startproject config .
作成されるプロジェクトディレクトリには、これから作成するアプリケーション全てに関係する設定を記述するファイルが作られるので、ディレクトリ名をconfig
にしておき、アプリケーションディレクトリと並べてプロジェクト用のディレクトリ(あらかじめ作成しておいたフォルダ)に配置する形にしています。
アプリケーションの作成
アプリケーションを作成するには、以下のコマンドを実行します。
python manage.py startapp アプリケーション名
HTMLファイルやCSSファイル、画像を保存するディレクトリの作成
manage.py
と同じ階層に、CSSやjavascriptのファイル、および画像を保存するためのディレクトリを作成します。
僕は、CSSファイルやjavascriptファイルを保存するディレクトリをstatic
に、画像を保存するディレクトリをmedia
にすることが多いです。
mkdir static
mkdir media
settings.pyへの追記
作成したプロジェクトディレクトリの中に、settings.py
というファイルがあります。
このファイルに、以下のように追記していきます。
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
作成したアプリ名, # ここを追記する。
]
import os
# いろいろなコード(省略)
STATIC_URL = '/static/'
# ここから下を追記する。
STATICFILES_DIRS = [os.path.join(BASE_DIR, CSSファイルを保存するディレクトリ)]
MEDIA_URL = 画像のURL
MEDIA_ROOT = os.path.join(BASE_DIR, 画像を保存するディレクトリ名)
LOGIN_URL = ログインページのURL
urls.pyへの追記
上記のCSSファイルや画像のURLに関する設定をurls.py
に追記します。
from django.contrib import admin
from django.urls import path
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
if settings.DEBUG
のところは、開発用に動作させているときのみ、という意味です。
HTMLテンプレートの作成
全てのHTMLファイルに共通する部分を書いた、テンプレートとなるHTMLファイルを作成します。
僕は、アプリケーションディレクトリにtemplates
ディレクトリを作成し、さらにアプリケーション名のディレクトリを作成して、その中にbase.html
というファイルを作成することが多いです。
base.html
では、head
タグ内に、CSSファイルの保存場所を書いておきます。
僕の場合は、
<link rel="stylesheet" href="{% static 'style.css' %}" type="text/css">
とすることが多いです(ここでは、CSSファイル名はstyle.css
としています)。
<!DOCTYPE HTML>
<html lang="ja">
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="{% CSSファイルを保存するディレクトリ名 CSSファイル名 %}" type="text/css">
<title>サンプルページ</title>
</head>
<body>
</body>
</html>
そして、他のHTMLファイルには、base.html
を参照するために以下のコードを記述します。
{% extends テンプレートHTMLファイル名 %}
上で書いたディレクトリ構成だと、{% extends 'アプリケーション名/base.html %}
となります。
データベースの設定
データベースに関連する設定は、主にmodels.py
に記述することになりますが、make migrations
コマンドにより、データベース関連の設定の変更を記録することができます。
アプリケーション名を省略すると、プロジェクト内の全アプリケーションに対して適用されます。
python manage.py makemigrations (アプリケーション名)
そして、エラー等の問題がなければ、migrate
コマンドによってデータベース本体に変更を適用します。
こちらもアプリケーション名を省略することもできます。
python manage.py migrate (アプリケーション名)
管理者の設定
管理者権限をもつユーザーを作成するには、以下のコマンドを入力します。
python manage.py createsuperuser
ユーザー名とEメールアドレス、パスワードを聞かれるので、順番に入力していきます。
ローカルサーバーの起動
ローカルサーバー(開発用サーバー)を起動するには、以下のコマンドを実行します。
python manage.py runserver
また、Ctrl + C
でサーバーを停止させることができます。
まとめ
ここでは、Djangoを始めるにあたり最低限必要なコマンドについて解説しました。
これらを理解できれば、Django理解への第一歩を踏み出したことになります。