LoginSignup
3
2

More than 3 years have passed since last update.

Djangoの初期設定

Last updated at Posted at 2020-04-12

はじめに

ここでは、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というファイルがあります。
このファイルに、以下のように追記していきます。

settings.py
# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    作成したアプリ名, # ここを追記する。
]
settings.py
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に追記します。

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としています)。

base.html
<!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を参照するために以下のコードを記述します。

sample.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理解への第一歩を踏み出したことになります。

3
2
0

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
3
2