はじめに
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>