Django Girlsのチュートリアルでは、djangoを使った簡単なブログを作成する方法が学べます。
本記事は私がその復習のためにノート代わりとして記述したものです。
ここではdjangoプロジェクト作成の手順と最低限の操作をまとめています。
環境: Windows 10 + Visual Studio Code
1. 仮想環境の構築とdjangoのインストール
作業フォルダを新規作成して移動します。
> mkdir djangogirls
> cd djangogirls
仮想環境を構築し、適用します。
> python -m venv myvenv
> myvenv/Scripts/activate
pipでdjangoをインストールします。(チュートリアルのdjangoのバージョンは2.2.4)
(myvenv)> python -m pip install --upgrade pip
(myvenv)> pip install django==2.2.4
2. プロジェクトの作成
新規プロジェクトmysiteを作成します。
プロジェクト名は任意です。
(myvenv)> django-admin startproject mysite .
3. 設定ファイル(setting.py)の変更
mysiteにあるsetting.pyにある次の項目の値を変更します。
# 1.タイムゾーンを設定
TIME_ZONE = 'Asia/Tokyo'
# 2.言語を設定
LANGUAGE_CODE = 'ja'
# 3.静的ファイルの場所を設定
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
# 4.ホストのアドレスを設定
ALLOWED_HOSTS = ['127.0.0.1', '.pythonanywhere.com']
# 5.データベースの設定
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
4. アプリの追加
mysiteにblogというアプリを新規作成します。
(myvenv)> python manage.py startapp blog
アプリを追加したことをプロジェクトに知らせます。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog.apps.BlogConfig', # 追加した行
]
5. アプリにモデルを追加
blogアプリにPostモデルを追加します。
from django.conf import settings
from django.db import models
from django.utils import timezone
class Post(models.Model):
author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
title = models.CharField(max_length=200)
text = models.TextField()
created_date = models.DateTimeField(default=timezone.now)
published_date = models.DateTimeField(blank=True, null=True)
def publish(self):
self.published_date = timezone.now()
self.save()
def __str__(self):
return self.title
モデルを追加したことをDBに知らせます。
この操作はモデル作成時のみで大丈夫です。
(myvenv)> python manage.py makemigrations blog
モデルをマイグレートします。
今後もモデルの構成に変更がある場合はこの操作を行います。
(myvenv)> python manage.py migrate blog
6. 管理者を登録する
DjangoにはDjango Adminという機能があり、
管理者権限でログインしなければ見られない管理画面がプロジェクト毎に自動作成されます。
まず、管理者権限を持つユーザーを登録します。
(myvenv)> python manage.py createsuperuser
指示に従って情報を登録していきます。
Username: ola
Email address: ola@example.com
Password:
Password (again):
Superuser created successfully.
以降、登録したユーザーで管理画面にログインできます。
7. 管理画面からモデルを見られるようにする
作成したPostモデルを管理画面で見られるようにします。
from django.contrib import admin
from .models import Post
admin.site.register(Post)
8. サーバーの起動
(myvenv)> python manage.py runserver
起動できたら、例えば管理画面へはhttp://127.0.0.1:8000/admin/からアクセスできます。
9. プロジェクトのデプロイ
デプロイについてはこちらを参照ください。
pythonanywhereを使った小規模なサービスを無料で公開する方法が書かれています。