【Django】ワークフローのメモ
django-admin startproject XXXX
で、プロジェクト作成後のフロー。
- アプリケーションの作成
- モデル作成(models)・有効化とマイグレーション(Migration)
- URL設定(urls.py)・ルーティング
- ビュー(views.py)の作成
- テンプレート(templates)の作成
- 静的ファイル(static files)の作成と配置
アプリケーションの作成
①コンソールで下記コマンドを実行する。
python manage.py startapp XXXX
※XXXXは任意の名称を入れる。
モデル作成(models)・有効化とマイグレーション(Migration)
①models.pyにクラスを作成する。
class XXXX(models.Model): title = models.CharField(max_length=255) text = models.TextField() author = models.ForeignKey( 'auth.User', on_delete=models.CASCADE, ) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True)
※XXXXは任意の名称を入れる。
②モデルの有効化
プロジェクト設定ファイル YYYY/settings.py (※YYYYはプロジェクト名) のINSTALLED_APPSに下記を追加する。
INSTALLED_APPS = [ 'XXXX.apps.XXXXConfig', # 追加 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ]
※XXXXはアプリケーション名。
※XXXXConfigは、該当アプリケーション内のapps.pyのクラス名を入れる。
from django.apps import AppConfig class XXXXConfig(AppConfig): name = 'ZZZZ'
その後に下記コマンドを実行する。
python manage.py makemigrations XXXX
※XXXXはアプリケーション名。
makemigrationsを実行することで、Djangoにモデルに変更があったこと(この場合、新しいものを作成しました)を伝え、そして変更を マイグレーションの形で保存する。
migrationsフォルダ内に0000_initial.pyのようなファイルが作成されている。
下記コマンドを実行すると、SQL文を確認することが出来る。
python manage.py sqlmigrate XXXX 0001
③マイグレーション
下記コマンドを実行する。
python manage.py migrate
これで、モデルのテーブルをデータベースに作成できる。
makemigrationsで作成したファイルは消える。
URL設定(urls)・ルーティング
作成したアプリケーションにURL設定を行う。
設定ファイルが無い場合は、urls.pyを新規作成する。
````python:urls.py
作成例
from django.urls import path from . import views
app_name = 'XXXX'
urlpatterns = [ # ここにURL情報を入れていく ] ```` app_nameにはapps.pyに記載したnameと同じ名称を入れれば良いと思う。
ビュー(views)の作成
views.pyに作成するページ(URL)分のクラスとかを設定する。
テンプレート(templates)の作成
templatesフォルダ内にページ分のhtmlファイルを作成する。
静的ファイル(static files)の作成と配置
cssとかjsファイルがあれば、作成する。
配置はstaticフォルダ(フォルダ名は任意)とかを作成して、その中に入れる。
そして、プロジェクト設定ファイル YYYY/settings.py (※YYYYはプロジェクト名) の中に下記を追加する。
STATIC_URL = '/static/' STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')] # './static'
以上