skip to content
barorin&?

いつも分からなくなるDjangoの最初の方の手順メモ

/ 2 min read

はじめに

crmproject というプロジェクトに crmapp というアプリを追加したとき、 Django でやった最初のコマンド・設定まとめです。

方法

ライブラリインストール

django
ulid-py # uuidを作成
django-currentuser # ログイン中のユーザーを取得

プロジェクトとアプリ作成

$ django-admin startproject crmproject
$ cd crmproject
$ python manage.py startapp crmapp

設定変更

# crmproject/settings.py
INSTALLED_APPS = [
    ...
    "crmapp.apps.CrmappConfig", # 追加
]

MIDDLEWARE = [
    ...
    "django_currentuser.middleware.ThreadLocalUserMiddleware", # 追加(django-currentuserの設定)
]

LANGUAGE_CODE = "ja" # 変更

TIME_ZONE = "Asia/Tokyo" # 変更

ルーティング設定

# crmproject/urls.py
from django.contrib import admin
from django.urls import path, include # include追加

urlpatterns = [
    path("admin/", admin.site.urls),
    path("", include("crmapp.urls")), # 追加
]
# crmapp/urls.py
"""ファイルごと新規作成"""
from django.urls import path
from . import views

app_name = "crmapp"

urlpatterns = [
    path("", views.IndexView.as_view(), name="index"),
]

ビューの作成

# crmapp/views.py
# from django.shortcuts import render # 削除

# 以下追加
from django.views.generic.base import TemplateView

class IndexView(TemplateView):
    """トップページのビュー
    Attributes:
        template_name: レンダリングするテンプレート
    """

    template_name = "index.html"

モデル作成

cromapp/models.pyにテーブル構成を書く

# crmapp/models.py
from django.db import models

class ContactInfo(models.Model):
	pass

マイグレーション

$ python manage.py makemigrations crmapp
$ python manage.py migrate

作成したモデルを管理サイトに登録

# crmapp/admin.py
from django.contrib import admin

from .models import ContactInfo

# 管理サイトにDBを登録
admin.site.register(ContactInfo)

スーパーユーザーの登録

$ python manage.py createsuperuser

テンプレートの作成

crmapp/templates/index.html

BootStrap の適用

  • 画像、CSS、JS はcrmapp/staticフォルダへ
  • static ファイルのロード例
{% load static %}

<a href="{% url 'crmapp:index' %}">Index</a>
<link href={% static "css/all.min.css" %}
<img src="{% static 'img/undraw_rocket.svg' %}" />
<script src={% static "vendor/jquery/jquery.min.js" %}></script>