自動化無しに生活無し

WEBとかAIとかLinux関係をひたすら書く備忘録系ブログ

  • 【Django】DTLのextendsとblockを使って、テンプレートを継承をする

    DjangoTemplateLanguage(以下、DTL)のextendsとblockを使用することで、複数のページの共通部分を一箇所にまとめることができる。 例えば、BootstrapやjQueryの読み込み、サイトのヘッダーやサイドバー等の共通箇所を一箇所にまとめることで、編集時に一箇所だけ編集すればOK。 本記事ではextendsとblockを使用して、簡単なテンプレートの継承を行う。コードは ...
  • 【Django】ユーザーモデルと1対多のリレーションを組む方法【カスタムユーザーモデル不使用】

    認証にはallauthを使用する。 コードは40分Djangoの簡易掲示板を元に作成する。forms.pyを実装させている。 Userモデルと1対多のリレーションを組み、誰が投稿したのかわかるようにする。 models.py from django.db import models from django.contrib.auth.models import User class Topic(models.Model): comment = models.CharField(verbose_name="コメント",max_length=2000) user = models.ForeignKey(User, verbose_name="投稿 ...
  • 【Laravel】CSSやJS等の静的ファイルを読み込む【public/static/】

    静的ファイルの読み込みができれば、JSやCSSだけでなくサイトの画像を前もって用意することができる。 本記事では予めプロジェクトに配置したCSSやJSを読み込み、表示させる方法を解説する。 publicディレクトリ内にstaticディレクトリを作る まず、静的ファイル関係を記録するディレクトリを作成する。 Laravelにはpublicというディレクトリが用意されており、通常はそこにCSSやJS等を保管す ...
  • 【Laravel】マイグレーション時の『Cannot add a NOT NULL column with default value NULL』問題を対処する【エラー】

    なぜ、このエラーが発生するのか。まず原因から解説する。 原因 要するにこういうこと。 追加しようとしているフィールド(カラム)がNull禁止でデフォルトが無い。しかし、フィールド(カラム)を追加する以上、どうしてもNullになってしまう。この矛盾をどうするかと言うのがこの問題。 この状況が発生する条件は下記。下記を全て満たすと発生する。 条件1:既存のテーブルにカラムを追加する 条件2:追加するカラムにカラム ...
  • VisualStudioCode(VScode)を使う前にやっておきたい設定と覚えておくと良い操作方法

    比較的メジャーなVisualStudioCode(以下VScode)も、やはり初期状態のままでは使いづらい。 本記事では本格的にコードを書く前にやっておきたい設定を列挙する。 文字サイズを変更する まず文字サイズの変更。一番手っ取り早く文字を大きく表示させる方法として、VScode全体を拡大縮小することが有効。 VScodeのメニューバーから『表示』→『外観』→『拡大』もしくは『縮小』を選ぶ。もしくは、シ ...
  • Djangoで1対多のリレーションを構築する【カテゴリ指定、コメントの返信などに】【ForeignKey】

    1対多のリレーションを構築することができれば、トピックにカテゴリを指定したり、トピックに対してコメントを投稿することができる。 本記事はその方法を1対多の原理からDjangoのmodels.pyでの書き方まで記す。コードは『Djangoビギナーが40分で掲示板アプリを作る方法』から流用する。 1対多の仕組み 1対多とは、一言で言ってしまうと、プロ野球チームとチームに所属する選手の関係である。下記図をご覧 ...
  • Laravelに必要なPHP構文【if,for,function,class,型変換、配列操作など】

    Laravelはフレームワークである。すでにコードが書かれており、それを読みながら追記していく必要がある。 そのため、Laravelによく出るPHP構文を知っておくと開発がスムーズに進む。本記事ではLaravelに必要なPHP構文をまとめて解説する。 if 基本のif文。ブーリアン型の判定が主である。 <?php $flag = True; if ($flag){ echo "True!!"; } else{ echo "False!!"; } Laravel実践では、コントローラがクライアントから受け取った値が存在するかチ ...
  • 【Django】formタグを使ってHTTPリクエストのGETメソッド、POSTメソッドを送信する

    前提 DjangoでHelloWorld【HttpResponse及びレンダリング】ができた状態を前提として話を進める。 HTTPリクエストのGETメソッドの送信方法 用途は主に、検索がある。 まずindex.html <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous"> </head> <body> <main class="container"> <form action="" method="GET"> <input type="text" name="search" value="{{ request.GET.search }}" placeholder="キーワード"> <input type="submit" value="検索"> </form> </main> </body> </html> form ...
  • 【Django】開発を始める上で最初に覚えておいたほうがよい Django Templates Language(DTL)

    DjangoでHelloWorldを表示させた後、次にやることはDjango Templates Language(DTL)の習得。 DTLを使うことで、ビューから受け取った変数を表示させたり、条件分岐させたり、繰り返して同じ内容のHTMLを表示させたりすることができる。 Django Templates Language (DTL)とは 例えば、ログイン機能のあるサイトで、未ログインのユーザーにはログインページのリンクを表示、ログイン済みのユーザーにはマイページのリ ...
  • Laravelビギナーが30分で掲示板アプリを作る方法

    laravelはDjangoと違って初っ端から大量のファイルやディレクトリが表示され、気後れしそうになるが、編集する部分さえ分かれば大したことはない見掛け倒し。 PHPを中心に扱う現場ではlaravelのスキルが求められるのでウェブ屋になるのであれば、是非とも習得しておきたい。 対象読者はlaravelを既にPCにインストール済み、Linux系コマンド習得済み、PHP及びHTML/CSS/JSの基本構 ...