Django

【Django】作成時によく使用するコマンド

プロジェクトの作成

django-admin startproject *プロジェクト名*

アプリの作成

python manage.py startapp *アプリ名*

Templatesディレクトリの作成

manage.pyのあるディレクトリと同じ階層に「Templates」ディレクトリを作成する。

settings.pyの修正

DATABASES(MYSQL)

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '***', #データベースの名前
        'USER': 'root', #ユーザー名 
        #'PASSWORD': '*', #パスワードがある場合は書く
        'PORT': '3306', #ポート番号 XAMPP>MySQL部に記載 デフォルト3306でOK
        'OPTIONS': {
            'charset': 'utf8mb4',
        }
    }
}

INSTALLED_APPS

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    '*アプリ名*' # 作成したアプリ名
]

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',
            ],
        },
    },
]

テンプレートhtmlを作成

「Templates」ディレクトリ内に「index.html」を作成する。

<html lang='ja'>
    <head>
        <meta charset='utf-8'>
        <title>タイトル</title>
    </head>
    <body>
        <h1>見出し</h1>
    </body>
</html>

urls.pyの修正

プロジェクト側のurls.py

from django.urls import path,include # 追加

urlpatterns = [
    path('',include('*アプリ名*.urls')), #追加
    path('admin/', admin.site.urls),
]

アプリ側のurls.py

最初にアプリのディレクトリ内に「urls.py」のファイルを作成する

from django.urls import path
from . import views

app_name = '*アプリ名*'
urlpatterns = [
    path('index/', views.IndexView.as_view(), name='index'),
]

views.pyを修正

from django.shortcuts import render
from django.views.generic import TemplateView # 追加

# Create your views here.
# 以下追加
class IndexView(TemplateView):
    template_name = 'index.html'

admin.pyを修正

モデルをdjangoの管理画面で修正できるようにしたい場合に記載する。

from django.contrib import admin

# Register your models here.
from .models import *モデル名*

class *モデル名*Admin(admin.ModelAdmin):
    pass

admin.site.register(*モデル名*, *モデル名*Admin)

スーパーユーザーの作成

python manage.py createsuperuser
ユーザー名 (leave blank to use '***'): *好きなユーザー名*
メールアドレス: *アドレス*
Password: *好きなパスワード(表示されない)*
Password (again):*好きなパスワード(表示されない)* 
Superuser created successfully.

cssを集める

python manage.py collectstatic

マイグレーション

python manage.py makemigrations

アプリ単体でマイグレーションする場合はアプリ名を入れる

python manage.py makemigrations *アプリ名*
python manage.py migrate

サーバーの起動

python manage.py runserver