自動化無しに生活無し

WEB開発関係を中心に備忘録をまとめています

  • Django-allauthにてフォームを中央寄せにさせる【ログインページのテンプレートのカスタマイズ】

    以前の方法であれば、単純なCSSの割り当てだけだったので、ログインフォームを中央寄せに仕立てることはできなかった。 今回は、HTMLも大幅に変更を行い、ログイン画面のフォームを中央寄せに仕立てる。 account/base.html 全てのログインフォームのテンプレートから継承されるbase.htmlを下記のように編集する。 {% load static %} <!DOCTYPE html> <html> <head> <title>{% block head_title %}{% endblock %}</title> <!--中央寄せ、フォーム系のタグは全てBootstrapから拝借--> ...
  • chart.jsでグラフ表示幅と高さを指定する。

    まず、公式によると下記の方法ではchart.jsの横幅と高さ指定は通用しない。 <canvas id="graph" height="40vh" width="80vw"> 他にもクラス名を指定して、そのクラス名に幅などの装飾を施す方法も通用しない。 対策 対策1:親要素でstyle属性にposition:relativeとwidth及びheightを合わせて指定する。 クラス名にCSSで装飾を施すのではなく、親要素のstyle属性に指定しなければうまく行かないので注意。 <div style="position:relative;width:250px;height:250px;"> <canvas id="graph"></canvas> </div> 対策2: ...
  • 【Django】テンプレートで数値を使用したforループを実行する方法【レビューの星のアイコン表示などに有効】

    通常、DjangoTemplateLanguageのforループは数値型のループは許さない。ループが許されているのは、文字列型かリスト型、イテラブルなオブジェクトに限定される。 これを普通のPythonで表現するのであれば、こんな状態。 for content in contents: print(content) このcontentsに数値を入れることはできないのはPythonをやっていればわかる。しかし、とある方法を使えば数値のループは実現できる。 テンプレートタグw ...
  • Laravelで.env(環境変数)に指定した値をチェックする方法【コントローラ・ビュー】

    例えば、コントローラなどで開発段階とデプロイ後で処理を切り分けたい事がある。そういう時は、.env(環境変数)に指定した値を参照してif文で分岐させれば良い。 コントローラで環境変数に指定した値を確認する。 if ( env("APP_DEBUG") ){ \Log::debug("APP_DEBUGはTrueです"); } else{ \Log::debug("APP_DEBUGはFalseです"); } これで解決す ...
  • Laravel 8.x系のroute/web.phpはこう書く【Target class [Controller Name] does not exist.】

    Laravel7.x系はサポートが切れているので早めにLaravel8.x系にしたいところ。 ルーティングの記法が変わっているので確認しましょう。 –resourceの場合 こうする。 #7.x系以前の書き方。 #Route::resource('/topics', 'TopicsController'); #8.x系以降の書き方。 use App\Http\Controllers\TopicsController; Route::resource('/topics', TopicsController::class); 冒頭で予めコントローラをuseしておく。 コントローラのアクションと逆引き用の名前を指定する場合。 こうする。 #7.x系以前の書き方。 #Route::get('/topics', 'TopicsController@index')->name('topics.index'); #8.x系以降の ...
  • HTMLのformタグで送信(submit)をする際に、確認をとった上で送信を行う【onsubmit属性】

    例えば、下記のような削除ボタンであれば、削除ボタンが押されると同時に削除が実行される。 <form action="" method="POST"> <!--CSRF_token--> <input class="btn btn-outline-danger" type="submit" value="削除"> </form> これでは間違えて押してしまった時に取り返しが付かない。 そこで下記のようにformタグにonsubmit属性を付与する。これで削除の送信前に確認をとった上で送信を行う事ができる。 <form action="" method="POST" onsubmit="if(confirm('本当に削除し ...
  • Laravel8.xでページネーターのSVGの矢印がおかしいので修正する。

    問題だらけのLaravel8.xでまた問題が出てきた。ページネーションを普通に使うと、このようにSVGが狂っており、巨大化する。 修正 app/Providers/AppServiceProvider.phpにて下記のようにする。 <?php namespace App\Providers; use Illuminate\Support\ServiceProvider; use Illuminate\Pagination\Paginator; class AppServiceProvider extends ServiceProvider { /** * Register any application services. * * @return void */ public function register() { // } /** * Bootstrap any application services. * * @return void */ public function boot() { Paginator::useBootstrap(); } } これでLaravel7.x以前のBootstrapを使った普通のページネーション ...
  • Djangoをやる前に知っておきたいPython構文【オブジェクト指向(class文)と別ファイル読み込み(import文)は特に重要】

    Djangoを始める前に知っておきたいPython構文をまとめる。 型 #数値型 score = 100 #文字列型 name = "Taro" #リスト型 numbers = [ 46,77,22 ] #辞書型 topic = { "id":1, "comment":"Hello" } #辞書型のリスト topics = [ { "id":1, "comment":"Hello" }, { "id":2, "comment":"Hi" }, { "id":3, "comment":"こんにちは" }, { "id":4, "comment":"どうも" }, ] 数値型は演算子(+ - * /)のいずれかを使用して計算を行うことができ ...
  • LaravelのHerokuデプロイがPHPバージョン問題で必ず失敗する問題は、バージョンアップで対処する【ERROR: Dependency installation failed!】

    経緯 2021年12月某日、今日もLaravelのプロジェクトの開発を終え、『さあデプロイだ』とHerokuへデプロイをすると、下記のようなエラーメッセージが出た。 原因 これまで、普通にデプロイできていて、今日になってなぜデプロイに失敗するのか。どこかで設定ファイルの編集ミスったかと思いあれこれ確認してみたが、原因はわからない。 そこでStackOverflowにて、検索してみると、同様のエラー報告がみ ...
  • 【openpyxl】PythonからExcelファイルを読み書きする

    openpyxlを使うことで、PythonからExcelファイルの読み書き編集ができる。 インストール まずはopenpyxlのインストール pip install openpyxl Excelファイルの新規作成・読み込み 新規作成 import openpyxl as px #新規作成(オブジェクト生成)から一旦保存。 wb = px.Workbook() wb.save('test.xlsx') 読み込み import openpyxl as px #既存のファイルを読み込み wb = px.load_workbook('test.xlsx') 先ほど作成したtest.xlsxを読み込む シートの操作 アクティブシートを選択する import openpyxl as px wb = px.load_workbook('test.xlsx') #アクティ ...