実装する内容
DockerでPythonのフレームワークであるDjnagoでMackdownエディタを実装する。
参考にした記事
助けていただいた方
ありがとうございました!!!!
@hokutoh
前提条件
Dockerインストール済み
docker-compose コマンドを利用できること
この動画のレベルを理解できる方
https://www.youtube.com/watch?v=O037g3NOoXY&t=1279s
開発端末
MacBook Air M2チップ(macos Ventura 13.4)
コード
ソースコードをGitHubにアップロードしておりますので、ご参照ください。
https://github.com/kazunobu2022/django-markdown
Dockerfileの作成
なぜか、# FROM --platform=linux/amd64 python:3.9
これを記述しないと
docker-compose build --no-cache
実行時にERROR [5/6] RUN pip install -r requirements.txt
というエラーが出ます。なぜか分からないです(泣)わかる方がいれば教えてください。
# FROM --platform=linux/amd64 python:3.9
FROM python:3
ENV PYTHONUNBUFFERED 1
WORKDIR /code
RUN pip install --upgrade pip
# 依存パッケージをrequirements.txtに記述
ADD requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/
コマンド実行
docker compose run --rm web bash
python3 manage.py startapp markdown
インストールパッケージをrequirements.txtに記述
Django
# Markdownエディタ本体パッケージ
django-mdeditor
settings.pyに以下を追記。
私は英語読めないので、日本語に変更してます。
import os
INSTALLED_APPS = [
'mdeditor', # 追加
'markdown', # 追加
]
# これはDjangoバージョン3.0以上の場合のみ記載すること
X_FRAME_OPTIONS = 'SAMEORIGIN'
# ファイルアップロード用
MEDIA_ROOT = os.path.join(BASE_DIR, 'uploads')
MEDIA_URL = '/media/'
# LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'ja'
# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Tokyo'
configのurls.pyに以下を追記
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path("mdeditor", include('mdeditor.urls')),
]
models.pyに以下を追記
from django.db import models
from mdeditor.fields import MDTextField # 追加
class Article(models.Model):
title = models.CharField(max_length=100)
content = MDTextField()
コマンド実行
docker compose run --rm web bash
python3 manage.py makemigrations
python3 manage.py migrate
python3 manage.py createsuperuser
ユーザー作成時、ユーザー名、メールアドレス、パスワードを求められますので各自返答してください。
次のエラーはPWの文字数が少なくて怒られていますが[y]で返答していただいて大丈夫です
docker-compose up