PUROGU LADESU

ポエムがメインのブログです。

【Kotlin】Gradleのdependanciesを反映させる方法

IntelliJ IDEA初心者です。 問題 build.gradle.ktsのdependanciesにarrowを追加したがimportが認識しない。 ビルドしなおしてもダメ。 ChatGPTに教えてもらった。 方法 画面右上の歯車マークの下のベルマークの下の謎アイコンをクリックする。 (よく見ると…

【Python】メソッド内でのクラス変数の注意点

インスタンスメソッドからクラス変数を利用する クラス変数はインスタンスメソッドから利用する場合混乱しやすいため注意が必要。selfでアクセスする場合、インスタンス変数 -> クラス変数の順で探しに行くため、 クラス変数しかない状態でselfで代入すると…

【Django】ログインを強制する

LoginRequiredMixin ログインしていることを前提とした機能の場合、 強制的にログイン画面に飛ばしたい。クラスベースではLoginRequiredMixinを実装することで可能となる。 ログイン後は、指定した画面に遷移する。 デフォルトではアクセスしようとした画面…

【Django】モデルインスタンスのsaveとバリデーション

Formクラスにもバリデーションを定義することができるが、 Modelクラスにも定義することができる。 full_clean() バリデーションを実施するにはfull_clean()を呼べばよい。 full_clean()では下記が呼ばれる。 clean_field() -> 各フィールドのvalidatorsに定…

【Django】JSONを返すだけのクラスベースView

画面がいらない場合、テンプレートを使わない場合はクラスベースではViewを使用します。 HttpResponseを作ってcontentにセットして返せば良し。 他のメソッドが必要なら、def post, def headなどを定義すれば良し。 from django.views.generic import View c…

【Django】素のSQL文の実行

パターンは2つある1.モデルオブジェクトに紐づける(SELECTの場合) 2.モデルに関係ないSQLを実行する(INSERT, UPDATE, DELETE, モデル生成しないSELECT) 1.モデルオブジェクトに紐づける detail = DailyReportDetail.objects.raw("SELECT * FROM reportap…

【Django】標準ログイン画面を使う方法

Djangoにはログイン画面を実装する方法が提供されていますので、 それを使用します。Djangoの認証システムを使用する | Django ドキュメント | Django ルーティングの追加 プロジェクトルートのurls.py urlpatterns = [ path("accounts/", include("django.c…

【Django】カスタムユーザーモデルを使う方法

User 名前はCustomUserとし、単純のためBaseUserManagerを継承することとします。 だだ含まれるフィールドが受け継がれてしまうので、すべてカスタムしたい場合はAbstractBaseUserを継承しましょう。settings.pyにUserモデルの指定を追加する AUTH_USER_MODE…

ORマッパーなんか要らない

DjangoのORマッパーに四苦八苦していますが、そもそも必要ないんじゃないかという話。 もちろん単純なSELECTやfilter条件などを使うだけなら難しくもないけれど、 QとかFとかAnnotateとかどう考えたらいいのかわからない。 SQLを覚えたほうが早い ORMのメリ…

【Django】VSCode拡張

なんか久しぶりにDjangoを開いたけどhtml補完がなんかいまいち。もともとDjaneiroを入れてたけど更新されていないようだ。 というわけでコレ marketplace.visualstudio.com入れたらhtml補完ができなくなった。というか以前はできないと思っていたが、回避方…

【C#】delegate、Action、Func

C#

宣言 関数の入れ物。定義した型の関数を格納できる。 delegateキーワードを付けて引数、返り値の型を宣言する。delegate void del_func(int val); new 以前はnewでインスタンス化していたが、v2.0からインスタンス化は不要 del_func dft = new del_func(func…

AutoHotKeyでキーマッピングを変更する

キーマッピングを変更するソフトです。 www.autohotkey.comMacならkarabiner-elementsを使っていますが、 Windowsはこいつを使ってます。スクリプトファイル(ahkファイル)にキーバインドを設定し、 ファイルを何処かに設置してダブクリで起動します。する…

速習Python:パッケージ

パッケージを作成 my_package の中の utils.py (v3.3以降は__init__.pyは必須でない) def sample1_func(): print("this is sample 1 func") def sample2_func(): print("this is sample 2 func") パッケージのインポート フルパスでパッケージ名を明示する…

速習Python:内包表記、例外処理

リスト内包表記 []の中にfor文をかいて配列を返すような場合、簡潔に書ける。 t = (1,2,3,4,5) r = [] for i in t: r.append(i) r = [i for i in t] ディクショナリ内包表記 zipを使う w = ['mon','tue','wed'] f = ['coffee','milk','water'] d = {} for x,…

React フック

フック 関数コンポーネントに機能を追加するための仕組み 副作用フック コンポーネントを描画、破棄するタイミングで何らかの処理を実行させる フックは必ず関数コンポーネントのトップレベルで呼び出すこと。 ループ、条件分岐、入れ子関数では機能しません…

React ルーティング

ルーティング URLに応じて処理を渡す先を変える SPAではページ遷移もアプリが担う インストール npm install react-router-dom 基本 SwitchからRouteになりました。Routeを入れ子にして階層構造を作る。 子ルートは親ルートのパスに連結して定義される。 親…

React フォーム

フォーム 制御コンポーネント Controlled Component useStateを使い、stateで値を保持する name属性とstateプロパティの名前を一致させる 値はvalueに設定する。 const [form, setForm] = useState({email:"xx@xx"}) <input name="email" value={form.email} /> 算出プロパティ名。変数を[]で囲うとプ…

React 状態管理

state 基本 Props:コンポーネントに値を渡すためのもの。読み取り専用で変更不可 State:状態管理のためのもの。変更可能。フォームの入力など。 使い方 関数コンポーネントではthisではなくuseStateを使う。 useStateを使い、変数、更新関数、初期値を設定す…

React 分岐条件、繰り返し、イベント処理

分岐条件と繰り返し 繰り返し Array#mapを使ってコンポーネントを返す {articles.map((article) => return <MyArticle {...article} key={article.url}/> )} key リストなどはタグにkeyをつけることで更新、追加の判別が可能となり、無駄な処理がなくなる。 keyはユニークであれば何でも良い。 分岐 ?: 3</myarticle>…

React コンポーネント

コンポーネント 関数コンポーネントとクラスコンポーネントがある hooksができたので関数コンポーネントがおすすめ 関数コンポーネント returnでReact要素を返す propsを引数で受け取る クラスコンポーネント Componentクラスを継承 renderでReact要素を返す…

React 概要

環境構築 雛形を作る(webpackも入る) npx create-react-app xxx npm start npm run build 本番環境用にコンパイルしbuildに出力 npm run eject webpack/babelの設定情報をconfigに出力 React.StrictMode 非推奨の警告を出してくれる機能 JSX: タグをjavasc…

速習Python:関数

関数 使う前に定義する。 引数の数が違うとエラー。(明示すれば可変長にできる) def add(a, b): return a + b def menu(entree ,drink, dessert='cake'): print(entree, drink, dessert) #キーワード引数も対応 menu(entree='chikin', drink='beer') 型宣…

速習Python:制御フロー

if インデントとしてスペース4つが必須。スペースの数が違うとエラー。if x print('') elif: print('') else: print('')cost = 0 if (ac == bc) else 1 演算子 / 除算 結果はfloat // 切り捨て除算 結果は整数だがfloatの可能性もある(要注意) % 余り 結果…

速習Python:データ構造

リスト(配列) list li = [5, 11, 40, 6, 55, 2, 7] li[-1] #最後尾 li[2] #3番目 li[:2] #0-3番目の手前まで li[:] #全部 len(li)list('abcde') で文字列をリストに変換li[::2] #全部を一つ飛ばしで取り出し li[::-1] #全部を逆順で取り出し リストの操作 …

速習Python 数値と文字列

print "python" でインタラクティブモード起動 print() type() #変数の型を確認 print('aaa', 'bbb', sep=',') 変数 varはなくていい 型は自動で決まる 型宣言はできるがエラーにはならず意味がないので不要nb: int = 1 num = 100 str = 'aaaa'定数はないけ…

Dockerその他注意事項

レイヤ https://qiita.com/zembutsu/items/24558f9d0d254e33088fDockerfileのコマンドのたびにレイヤが増えていくという説明。たぶん。 DockerDesktopのimageの中を見るとLayersというのが確認できる。 ネットワーク コンテナをネットワークに加えて複数のコ…

Dockerでpython環境を作成する2

Dockerfileでbuildしてイメージ作成するパターン python環境を構築し、ホストからソース編集できるようにします。 入れたいパッケージのリストはrequirements.txtに任意で記載します。https://hub.docker.com/_/python 1. フォルダ構成 src/ src/main.py doc…

DockerでPython環境を作成する

Dockerfileを使わずDockerHubのイメージをそのまま使うパターンです。 python環境を構築し、ホストからソース編集できるようにします。 入れたいパッケージのリストはrequirements.txtに任意で記載します。https://hub.docker.com/_/python 1. フォルダ構成 …

Dockerでanaconda環境を作る

anacondaをインストールしてjupyternotebookを起動し、ホストからアクセスできるようにします。https://hub.docker.com/r/continuumio/anaconda3imageが4GBほどありますので注意。 1. フォルダ構成 src/ docker-compose.yml 2. 起動方法 docker-compose.yml…

Dockerのボリューム

コンテナ内のデータはコンテナとともに消えるため、 ホストのディレクトリをコンテナにマウントして永続化する。1. 名前付きボリューム 保存場所はdockerが勝手に決めます docker volume create xxxrunの-vでマウントするディレクトリと、マウント先のボリュ…