【Python】Bootstrap Studioで作成したHTMLをDjangoに移植:準備編

  • URLをコピーしました!
目次

Bootstrap Studio

前回、Bootstrap Studioを使って作成した漢字間違い探しクイズ用のウェブサイトのHTMLを出力しました。

今回からはこの出力したHTMLをDjangoのプロジェクトに移植をしていきましょう。

そして今回はまずはとりあえず出力したHTMLを表示できるようにしていきます。

ではでは早速始めていきましょう。

プロジェクトとアプリの作成

ということで新しいDjangoプロジェクトの作成から開始です。

今回プロジェクト名は「findthedifferentkanji」としておきます。

ということでDjangoプロジェクトの作成はこんな感じ。

django-admin startproject findthedifferentkanji

そしてそのままアプリの作成も行います。

今回はインデックスページ入れて4ページのサイトですし、そのなかで「index.html」と「about.html」に関しては表示するだけ、処理のプログラミングが必要なのは「play.html」と「make.html」ということで、全てのページ一つのアプリにまとめてしまいましょう。

そのアプリの名前は「contents」としておきます。

django-admin startapp contents

これでプロジェクトとアプリが作成できました。

findthedifferntkanji > findthedifferntkanji > settings.pyの編集

次に新しいアプリ「contents」を「settings.py」に登録していきます。

場所は findthedifferentkanji > findthedifferentkanji > settings.py です。

変更部分は「INSTALLED_APPS」で、最後に「’contents’,」を追加します。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'contents',
]

findthedifferentkanji > findthedifferentkanji > urls.pyの編集

次に同じく findthedifferentkanji > findthedifferentkanji 内にある「urls.py」を編集します。

後ほど findthedifferentkanji > contents 内にも「urls.py」を作成しますので、混乱しないように注意してください。

中身としてはこんな感じです。

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('contents.urls')),
]

最初に説明文が色々と書かれているので、それを全削除しつつ、「from django.urls import path」に「include」を追加します。

また「urlpatterns」に「path(”, include(‘contents.urls’)),」を追加します。

findthedifferentkanji > contents > urls.pyの新規作成と編集

次に先ほどとは異なり、 findthedifferentkanji > contents 内にurls.pyを新規作成します。

そして内容をこんな感じにします。

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
    path('index.html', views.index, name='index'),
    path('play.html', views.play, name='play'),
    path('make.html', views.make, name='make'),
    path('about.html', views.about, name='about'),
] 

「urlpatterns」の最初の2行はファイル名が指定なし、もしくは「index.html」が指定された場合は「views.py」の「index関数」を参照するという意味です。

その後は「play.htmlが指定された場合はviews.pyのplay関数」を「make.htmlが指定された場合はviews.pyのmake関数」を、さらに「about.htmlが指定された場合はviews.pyのabout関数」を参照するようにしています。

findthedifferentkanji > contents > templates > contents の新規作成とhtmlファイルの配置

次に findthedifferentkanji > contentsフォルダ内に「templatesフォルダ」を新規作成し、さらにその中に「contentsフォルダ」を新規作成します。

そしてその中にBootstrap Studioで作成したhtmlファイルをコピーします。

ただしこの際、コピーするのはhtmlファイルだけで、assetsフォルダはコピーしませんので注意してください。

findthedifferentkanji > contents > static > contents の新規作成とassetsフォルダの配置

assetsフォルダにはCSSや画像などのファイルが収めされています。

つまりは静的ファイルです。

ということで findthedifferentkanji > contents 内に「staticフォルダ」を作成し、さらに「contentsフォルダ」を作成したのち、その中に「assetsフォルダ」をコピーします。

htmlファイルの修正

次に先ほど「assetsフォルダ」を配置した場所に合わせて、htmlファイル内の静的ファイルの場所を修正していきます。

まず静的ファイルを収めた「staticフォルダ」を使用することをhtmlファイルの最初の方に「{% load static %}」を追加することで宣言します。

場所をもう少し詳しく言うと、3行目にしておきました。

<!DOCTYPE html>
<html lang="ja">
{% load static %}

あとはその「staticフォルダ」内にあるファイルを参照している箇所を修正していきます。

例えばスタイルシートの場合はこんな感じです。

<link rel="stylesheet" href="{% static 'contents/assets/bootstrap/css/bootstrap.min.css' %}">

重要なのは「href=”{% static ‘contents/assets/bootstrap/css/bootstrap.min.css’ %}」の部分で、今回の場合で汎用的に書くと「href=”{% static ‘contents/assets/ファイル名’ %}」といった感じになります。

この修正点が結構大変ですが、全てのhtmlファイルを一つ一つ根気よく修正していきましょう。

findthedifferentkanji > contents > views.pyの編集

次にviews.pyの編集を行なっていきます。

とりあえずは指示されたhtmlファイルを表示するだけのプログラムにしておきましょう。

ということでこんな感じ。

from django.shortcuts import render
from django.http import HttpResponse

def index(request):

    return render(request, 'contents/index.html')

def play(request):

    return render(request, 'contents/play.html')

def make(request):

    return render(request, 'contents/make.html')

def about(request):

    return render(request, 'contents/about.html')

今回は「index.html」、「play.html」、「make.html」、「about.html」を一つのアプリ内で呼び出しますので、4つの関数を作成しています。

そしてそれぞれ呼び出された場合は対応するhtmlファイルを表示するというだけのプログラムになっています。

これでとりあえず外観としては移植完了です。

サーバーを起動し、index.htmlを確認してみるとこんな感じです。

Bootstrap Studioで作成したようなページが表示されました。

ただindex.htmlに動画がまだ埋め込めていないようなので、次回はこの点を修正していきましょう。

ではでは今回はこんな感じで。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次