-
DjangoにAdminLTEを入れるときのhtmlフォーマット
{% load static %} <!DOCTYPE html> <!-- This is a starter template page. Use this page to start your new project from scratch. This page gets rid of all links and provides the needed markup only. --> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>AdminLTE 3 | Starter</title> <!-- Google Font: Source Sans Pro --> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback"> <!-- Font Awesome Icons --> <link rel="stylesheet" href="{% static 'AdminLTE-3.2.0/plugins/fontawesome-free/css/all.min.css' %}"> <!-- Theme style --> <link rel="stylesheet" href="{% static 'AdminLTE-3.2.0/dist/css/adminlte.min.css' %}"> <!-- toastr (AdminLTEの通知用プラグイン) --> <link rel="stylesheet" href="{% static 'AdminLTE-3.2.0/plugins/toastr/toastr.min.css' %}"> </head> <body class="hold-transition sidebar-mini"> <div class="wrapper"> <!-- Navbar --> <nav class="main-header navbar navbar-expand navbar-white navbar-light"> <!-- Left navbar links --> <ul class="navbar-nav"> <li class="nav-item"> <a class="nav-link" data-widget="pushmenu" href="#" role="button"><i class="fas fa-bars"></i></a> </li> <li class="nav-item d-none d-sm-inline-block"> <a href="index3.html" class="nav-link">Home</a> </li> <li class="nav-item d-none d-sm-inline-block"> <a href="#" class="nav-link">Contact</a> </li> </ul> <!-- Right navbar links --> <ul class="navbar-nav ml-auto"> <!-- Navbar Search --> <li class="nav-item"> <a class="nav-link" data-widget="navbar-search" href="#" role="button"> <i class="fas fa-search"></i> </a> <div class="navbar-search-block"> <form class="form-inline"> <div class="input-group input-group-sm"> <input class="form-control form-control-navbar" type="search" placeholder="Search" aria-label="Search"> <div class="input-group-append"> <button class="btn btn-navbar" type="submit"> <i class="fas fa-search"></i> </button> <button class="btn btn-navbar" type="button" data-widget="navbar-search"> <i class="fas fa-times"></i> </button> </div> </div> </form> </div> </li> <!-- Messages Dropdown Menu --> <li class="nav-item dropdown"> <a class="nav-link" data-toggle="dropdown" href="#"> <i class="far fa-comments"></i> <span class="badge badge-danger navbar-badge">3</span> </a> <div class="dropdown-menu dropdown-menu-lg dropdown-menu-right"> <a href="#" class="dropdown-item"> <!-- Message Start --> <div class="media"> <img src="{% static 'AdminLTE-3.2.0/dist/img/user1-128x128.jpg' %}" alt="User Avatar" class="img-size-50 mr-3 img-circle"> <div class="media-body"> <h3 class="dropdown-item-title"> Brad Diesel <span class="float-right text-sm text-danger"><i class="fas fa-star"></i></span> </h3> <p class="text-sm">Call me whenever you can...</p> <p class="text-sm text-muted"><i class="far fa-clock mr-1"></i> 4 Hours Ago</p> </div> </div> <!-- Message End --> </a> <div class="dropdown-divider"></div> <a href="#" class="dropdown-item"> <!-- Message Start --> <div class="media"> <img src="{% static 'AdminLTE-3.2.0/dist/img/user8-128x128.jpg' %}" alt="User Avatar" class="img-size-50 img-circle mr-3"> <div class="media-body"> <h3 class="dropdown-item-title"> John Pierce <span class="float-right text-sm text-muted"><i class="fas fa-star"></i></span> </h3> <p class="text-sm">I got your message bro</p> <p class="text-sm text-muted"><i class="far fa-clock mr-1"></i> 4 Hours Ago</p> </div> </div> <!-- Message End --> </a> <div class="dropdown-divider"></div> <a href="#" class="dropdown-item"> <!-- Message Start --> <div class="media"> <img src="{% static 'AdminLTE-3.2.0/dist/img/user3-128x128.jpg' %}" alt="User Avatar" class="img-size-50 img-circle mr-3"> <div class="media-body"> <h3 class="dropdown-item-title"> Nora Silvester <span class="float-right text-sm text-warning"><i class="fas fa-star"></i></span> </h3> <p class="text-sm">The subject goes here</p> <p class="text-sm text-muted"><i class="far fa-clock mr-1"></i> 4 Hours Ago</p> </div> </div> <!-- Message End --> </a> <div class="dropdown-divider"></div> <a href="#" class="dropdown-item dropdown-footer">See All Messages</a> </div> </li> <!-- Notifications Dropdown Menu --> <li class="nav-item dropdown"> <a class="nav-link" data-toggle="dropdown" href="#"> <i class="far fa-bell"></i> <span class="badge badge-warning navbar-badge">15</span> </a> <div class="dropdown-menu dropdown-menu-lg dropdown-menu-right"> <span class="dropdown-header">15 Notifications</span> <div class="dropdown-divider"></div> <a href="#" class="dropdown-item"> <i class="fas fa-envelope mr-2"></i> 4 new messages <span class="float-right text-muted text-sm">3 mins</span> </a> <div class="dropdown-divider"></div> <a href="#" class="dropdown-item"> <i class="fas fa-users mr-2"></i> 8 friend requests <span class="float-right text-muted text-sm">12 hours</span> </a> <div class="dropdown-divider"></div> <a href="#" class="dropdown-item"> <i class="fas fa-file mr-2"></i> 3 new reports <span class="float-right text-muted text-sm">2 days</span> </a> <div class="dropdown-divider"></div> <a href="#" class="dropdown-item dropdown-footer">See All Notifications</a> </div> </li> <li class="nav-item"> <a class="nav-link" data-widget="fullscreen" href="#" role="button"> <i class="fas fa-expand-arrows-alt"></i> </a> </li> <li class="nav-item"> <a class="nav-link" data-widget="control-sidebar" data-slide="true" href="#" role="button"> <i class="fas fa-th-large"></i> </a> </li> </ul> </nav> <!-- /.navbar --> <!-- Main Sidebar Container --> <aside class="main-sidebar sidebar-dark-primary elevation-4"> <!-- Brand Logo --> <a href="index3.html" class="brand-link"> <img src="{% static 'AdminLTE-3.2.0/dist/img/AdminLTELogo.png' %}" alt="AdminLTE Logo" class="brand-image img-circle elevation-3" style="opacity: .8"> <span class="brand-text font-weight-light">AdminLTE 3</span> </a> <!-- Sidebar --> <div class="sidebar"> <!-- Sidebar user panel (optional) --> <div class="user-panel mt-3 pb-3 mb-3 d-flex"> <div class="image"> <img src="{% static 'AdminLTE-3.2.0/dist/img/user2-160x160.jpg' %}" class="img-circle elevation-2" alt="User Image"> </div> <div class="info"> <a href="#" class="d-block">Alexander Pierce</a> </div> </div> <!-- SidebarSearch Form --> <div class="form-inline"> <div class="input-group" data-widget="sidebar-search"> <input class="form-control form-control-sidebar" type="search" placeholder="Search" aria-label="Search"> <div class="input-group-append"> <button class="btn btn-sidebar"> <i class="fas fa-search fa-fw"></i> </button> </div> </div> </div> <!-- Sidebar Menu --> <nav class="mt-2"> <ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="false"> <!-- Add icons to the links using the .nav-icon class with font-awesome or any other icon font library --> <li class="nav-item menu-open"> <a href="#" class="nav-link active"> <i class="nav-icon fas fa-tachometer-alt"></i> <p> Starter Pages <i class="right fas fa-angle-left"></i> </p> </a> <ul class="nav nav-treeview"> <li class="nav-item"> <a href="#" class="nav-link active"> <i class="far fa-circle nav-icon"></i> <p>Active Page</p> </a> </li> <li class="nav-item"> <a href="#" class="nav-link"> <i class="far fa-circle nav-icon"></i> <p>Inactive Page</p> </a> </li> </ul> </li> <li class="nav-item"> <a href="#" class="nav-link"> <i class="nav-icon fas fa-th"></i> <p> Simple Link <span class="right badge badge-danger">New</span> </p> </a> </li> </ul> </nav> <!-- /.sidebar-menu --> </div> <!-- /.sidebar --> </aside> <!-- Content Wrapper. Contains page content --> <div class="content-wrapper"> <!-- Content Header (Page header) --> <div class="content-header"> <div class="container-fluid"> <div class="row mb-2"> <div class="col-sm-6"> <h1 class="m-0">Starter Page</h1> </div><!-- /.col --> <div class="col-sm-6"> <ol class="breadcrumb float-sm-right"> <li class="breadcrumb-item"><a href="#">Home</a></li> <li class="breadcrumb-item active">Starter Page</li> </ol> </div><!-- /.col --> </div><!-- /.row --> </div><!-- /.container-fluid --> </div> <!-- /.content-header --> <!-- Main content --> <div class="content"> <div class="container-fluid"> <div class="row"> <div class="col-lg-6"> <div class="card"> <div class="card-body"> <h5 class="card-title">Card title</h5> <p class="card-text"> Some quick example text to build on the card title and make up the bulk of the card's content. </p> <a href="#" class="card-link">Card link</a> <a href="#" class="card-link">Another link</a> </div> </div> <div class="card card-primary card-outline"> <div class="card-body"> <h5 class="card-title">Card title</h5> <p class="card-text"> Some quick example text to build on the card title and make up the bulk of the card's content. </p> <a href="#" class="card-link">Card link</a> <a href="#" class="card-link">Another link</a> </div> </div><!-- /.card --> </div> <!-- /.col-md-6 --> <div class="col-lg-6"> <div class="card"> <div class="card-header"> <h5 class="m-0">Featured</h5> </div> <div class="card-body"> <h6 class="card-title">Special title treatment</h6> <p class="card-text">With supporting text below as a natural lead-in to additional content.</p> <a href="#" class="btn btn-primary">Go somewhere</a> </div> </div> <div class="card card-primary card-outline"> <div class="card-header"> <h5 class="m-0">Featured</h5> </div> <div class="card-body"> <h6 class="card-title">Special title treatment</h6> <p class="card-text">With supporting text below as a natural lead-in to additional content.</p> <a href="#" class="btn btn-primary">Go somewhere</a> </div> </div> </div> <!-- /.col-md-6 --> </div> <!-- /.row --> </div><!-- /.container-fluid --> </div> <!-- /.content --> </div> <!-- /.content-wrapper --> <!-- Control Sidebar --> <aside class="control-sidebar control-sidebar-dark"> <!-- Control sidebar content goes here --> <div class="p-3"> <h5>Title</h5> <p>Sidebar content</p> </div> </aside> <!-- /.control-sidebar --> <!-- Main Footer --> <footer class="main-footer"> <!-- To the right --> <div class="float-right d-none d-sm-inline"> Anything you want </div> <!-- Default to the left --> <strong>Copyright &copy; 2014-2021 <a href="https://adminlte.io">AdminLTE.io</a>.</strong> All rights reserved. </footer> </div> <!-- ./wrapper --> <!-- REQUIRED SCRIPTS --> <!-- jQuery --> <script src="{% static 'AdminLTE-3.2.0/plugins/jquery/jquery.min.js' %}"></script> <!-- Bootstrap 4 --> <script src="{% static 'AdminLTE-3.2.0/plugins/bootstrap/js/bootstrap.bundle.min.js' %}"></script> <!-- AdminLTE App --> <script src="{% static 'AdminLTE-3.2.0/dist/js/adminlte.min.js' %}"></script> <script src="{% static 'AdminLTE-3.2.0/plugins/toastr/toastr.min.js' %}"></script> </body> </html>
-
DjangoにAdminLTEを実装してみた!
どうも!おはこんばにちは!ゆしゅです。今日はDjangoにAdminLTEを実装してみた!ということで、まず簡単に流れをザッと載せていきますDjangoサーバを立ち上げるAdminLTEのjsやcssを一括で公式からダウンロードDjangoサーバのstaticにAdminLTEを丸ごとぶち込むAdminLTEに含まれるstarter.htmlをtemplatesにぶち込む表示したら完成では順番にやっていきたいと思います。まず「1. Djangoサーバを立ち上げる」から。ここはもういつも通り。100万回もやったら忘れないね。まず、VSCodeのエクスプローラー上で右クリック(Macは二本指クリック)でオプション画面みたいなのを表示する。この「ワークスペースにフォルダーを追加」というのを押すとフォルダ画面が出るので、そこで適当な開発用のフォルダを作成し、追加する。そしてterminalを開いて、作業ディレクトリをさっき追加したフォルダにする。おそらく既にpythonもpipも入れているはずなので、virtualenvも入っているはず(これはよく使うので入れておいた方がいい)。このvirtualenvを使ってまず、Djangoサーバ立ち上げのための仮想環境を作ります。とりゃ!どうでしょう?できましたかね。そしたら、そのまま仮想環境も立ち上げちゃいましょう!とりゃ!もう環境は整いました。早いですね〜さすがの早業です。(ゆしゅじゃなきゃ見逃しちゃうね!)続いて、Djangoをpipでインストールします。インストールしたら、以下の流れで作業ディレクトリ内にprojectを立ち上げ、アプリも一つ作っておきます。(今回はhome_app)一応これで「1. Djangoサーバを立ち上げる」はほぼ完了です!ちょっと動作確認ははしょりました。(一応 python manage.py runserverとすると立ち上がります)そして!「2. AdminLTEのjsやcssを一括で公式からダウンロード」に進みます。こちらは以下にアクセスして3.2.0などをダウンロードしておくと良いでしょう。(正直beta版はなんかエラーが入ってそうで怖い)https://github.com/ColorlibHQ/AdminLTE/releasesサクサクいきます!「3. DjangoサーバのstaticにAdminLTEを丸ごとぶち込む」です。VSCode画面上でこんな感じにtemplatesとstaticを作ってください。お!もうできちゃったんですか!さすがですね〜(私ほどではないですが)ここからちょっと難しいです。なので細分化した手順を載せておきます。1. mysite内setteings.pyで以下の加筆修正-加筆修正1import os from django.utils.translation import gettext_lazy as _- 加筆修正2INSTALLED_APPSにhome_app.apps.HomeAppConfigを追加- 加筆修正3TEMPLATESのDIRの値を変える'DIRS': ['templates'],- 加筆修正4日本の日時に合わせる(これはもう以下のサイトを参考にしてください。。。)https://www.tohoho-web.com/django/settings.html- 加筆修正5STATIC_URLという変数があるのでその下にでも置いておきましょう。STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static') ]正直もう疲れましたよね。。。でもまだまだあるんです泣2. home_app/views.pyで以下を書き込む# Create your views here. from django.views.generic import TemplateView # Create your views here. class HomeIndexView(TemplateView): template_name = "index.html"3. home_appにurls.pyを作る4. home_app/urls.pyに以下を書き込むfrom django.urls import path from . import views app_name = "home" urlpatterns = [ path("", views.HomeIndexView.as_view(), name=""), ]ここのapp_nameはあってもなくても。この変数を使うのはテンプレートタグの中でくらいです。5. mysite/urls.pyに以下を書き込むfrom django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('', include('home_app.urls')), ]もうそろそろ終わりかな?と思ったそこのあなた!!そうです!もうすぐです!6. staticにAdminLTEを丸ごとぶち込むcssやiconは分かりやすいように同じ階層で入れるんだよ〜って例として入れました。7. templatesにstarter.htmlをぶち込むこれについては、今後のためにbase.htmlとindex.htmlに分けておくと良いことを示しておきます。基本的にDjangoではbase.htmlでhtmlのベースとなるページを作っておきます。なので、後々開発を進めていくのであれば、starter.htmlのベースに使えそうな部分だけ抜き取ってbase.htmlに入れておくと良いです。今回はめんどくさいのでindex.htmlにstarter.htmlの中身をコピペしました。(そのため「2. home_app/views.pyで以下を書き込む」ではindex.htmlとしていました)8. index.htmlをDjango用にカスタマイズする最後の仕上げです!結構めんどくさいと思うのでコピペできるのを用意しました!(最初からそうしろよ)この投稿の次の投稿を見てください!!これでもう本当に最後ですね。「5. 表示したら完成」ですterminal上でpython manage.py runserverと打ち込み、ブラウザ上でlocalhost:8000と打ち込んでみてください。表示結果はぜひ自分の目で確かめてみてください。できてからのお楽しみです^^ではでは〜!
-
イギリス旅行計画
こんにちは。お久しぶりです。初めましての方もいるかも。。。はい、そんなことはさておいて、最近読書をたくさんしているはずなのにどんどん日本語がうまく書けなくなっているゆしゅです。実は来年あたりにイギリス旅行に行きたいなーと考えています。きっかけは「ストーンサークルの殺人」というM.W クレイヴンさんによって書かれた作品を読んだことでした。彼のこの作品、ワシントン・ポー刑事シリーズは現在5作ほど日本で翻訳されていますが、どれも非常に面白いので、とてもオススメです!!(絶対に読んでください)そして、どの作品でもイギリス愛に溢れており、情景描写の至る所にイギリスの魅力が詰まっています。それをずっと目にしているとどうしても自分の目で見たいという欲に駆られ、イギリスの歴史や文化などを勉強するようになりました。ま、実はまだ1冊しか読んでないんですけどね!(イギリス関係の本はもう6冊くらい蓄えてます)まあこれから読んでいくとして、その1冊で知った情報を記録しておこうと思います。まず歴史から。イギリスのメインの歴史は11世紀から始まります。紀元前も一応はあるのですが、多国籍文化と一言で語られることが多いそう。一応下に11世紀以前の民族比較表を記載しておきます(ChatGPTで生成したので真偽不明) 特徴 アングロサクソン人 ローマ人 ケルト人 イングランド人 起源 ゲルマン系(アングル人、サクソン人、ジュート人) ラテン系(ローマ市発祥) インド・ヨーロッパ語族のケルト系 アングロサクソン+ノルマン人+ケルト+デーン人(混成) 主な活動地域 5〜11世紀のブリテン島 紀元前1世紀〜5世紀のローマ帝国 紀元前5世紀〜西欧全域(特にブリテン・ガリア) 11世紀以降のイングランド地域 言語 古英語(ゲルマン語派) ラテン語 ケルト語派(ブリソン語、ゲール語など) 中英語 → 近代英語(アングロサクソン語+ノルマン語+ラテン語起源) 宗教 ゲルマン多神教 → キリスト教 ローマ神話 → キリスト教 ケルト多神教(ドルイド)→ キリスト教 キリスト教(カトリック→英国国教会) 社会制度 部族王国制 → 封建制の始まり 共和政 → 帝政 → ローマ法 部族連合・酋長制 封建制 → 王政 → 立憲君主制 文化 武勇・戦士文化、英雄叙事詩(ベーオウルフ) 都市文明、ローマ法、インフラ 口承文化、詩・神話、装飾美術 法律(コモンロー)、議会政治、英語文学、海洋文化 建築 木造建築中心 石造都市建築 木造・土造の集落、ケアン 城・教会建築、都市インフラ 関係性 ローマ撤退後にブリテンへ侵入 ケルト人を征服、ローマ化 ローマ・アングロサクソンに圧迫されつつ残存 アングロサクソン、ノルマン、ケルト文化の融合体 流れで言うとまず、紀元前28世紀ごろにストーンヘンジ(ストーンサークル)を作る先住民(先住民の民族名は不明)がいて、そこに紀元前20世紀ごろまでの間に青銅器を持ったビーカー人が占領してくる。紀元前6世紀になると鉄器を持ったケルト人がやってきて、島でのんびりスヤスヤしていたら紀元前43年にローマ人が征服してくる。しかし、5世紀の始まり、やっぱ無理かもってなり、アングロ・サクソン人というゲルマン系の移民が征服してきてくる中で徐々に支配制度が確立されてきたっていう流れですかね。先住民 > ビーカー人 > ケルト人 > ローマ人 = アングロ・サクソン人 > イングランド人一番長かったのは先住民で、次に長かったのはビーカー人、ケルト人、ローマ人 and アングロ・サクソン人の順になりそうです。(イングランド人の定義が曖昧なので歴史の長さの比較では省きました)その後アングロ・サクソン人の王朝が崩壊したのですが、皇帝の子孫が若過ぎたため適当な伯爵家の子孫を王位につけていたらその隙をついてノルマン人に攻められ、勝利を収めた初代ノルマン人イングランド王のウィリアム1世がノルマン王朝を立ち上げ、イングランド島の歴史が始まったのかな。実はこのアングロ・サクソンに支配されていた時の歴史とそれ以降の王朝の歴史が膨大だったので結構はしょりました。今後暇な時にアングロ・サクソンによる支配の歴史と各王朝の歴史をまとめていきたいと思います。- アングロ・サクソンによる支配の歴史- イングランドの歴史