0
0

More than 1 year has passed since last update.

Docker + DjangoでMarkdownエディタを実装する

Last updated at Posted at 2023-06-16

実装する内容

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というエラーが出ます。なぜか分からないです(泣)わかる方がいれば教えてください。

Dockerfile
# 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に記述

requirements.txt
Django
# Markdownエディタ本体パッケージ
django-mdeditor

settings.pyに以下を追記。

私は英語読めないので、日本語に変更してます。

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に以下を追記

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
Djangoユーザー作成
python3 manage.py createsuperuser

ユーザー作成時、ユーザー名、メールアドレス、パスワードを求められますので各自返答してください。
次のエラーはPWの文字数が少なくて怒られていますが[y]で返答していただいて大丈夫です
スクリーンショット 2023-06-17 7.28.22.png

コンテナ起動
docker-compose up

動作確認

http://localhost:8000/admin/でログイン
スクリーンショット 2023-06-17 7.46.37.png

Articlesの追加をクリック
スクリーンショット 2023-06-17 7.47.46.png

スクリーンショット 2023-06-17 7.49.38.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0