diadia

興味があることをやってみる。自分のメモを残しておきます。

typescript 型の判定方法

typescriptは静的型付け言語なので、型を意識さざるを得ない。 例えばユニオン型で2つの異なるクラスを定義した場合、そのインスタンスはクラスによって使えるプロパティが変わる。 ていうことで、型を判定する条件分岐と判定する方法が重要になるらしい。 …

セッターゲッターについて

まずアクセス修飾子について アクセス修飾子はクラスを基準としてアクセスできるかどうかを定めるものと考えると良い。 class Person{ public name: string; constructor(name: string){ this.name = name; }; } let mario = Person("mario"); mario.name = …

typescriptコンパイラの設定について

udemyの超TypeScript入門 完全パック(2021)の内容をメモしている。とてもわかり易いのでおすすめ。 コンパイラの設定方法 watchモードを使って、保存時に自動的にTSからJSにコンパイルする方法 tsc --initコマンドでtsconfig.jsonを作り、すべてのファイルを…

djangoのインテリセンスを有効化する

参考: https://kic-yuuki.hatenablog.com/entry/vscode-python-autocomplete この方の記事が分かりやすかった。 djangoをvscodeで書く際にインテリセンスを働かせる。 visual studio code のルートディレクトリ(プロジェクト)に.vscode/settings.jsonを作…

typescriptのメモ

typescriptの特徴 Detecting errors in code without running it is referred to as static checking. Determining what’s an error and what’s not based on the kinds of values being operated on is known as static type checking. TypeScript checks a…

カスタムディレクティブを使う

ドキュメント カスタムディレクティブ — Vue.js 作り方概要 以下2つのステップで実装する。 カスタムディレクティブを定義し、カスタムディレクティブを適用したい要素に設定する。 カスタムディレクティブを定義する カスタムディレクティブを定義する方法…

javascript DOM操作でcssを変更する

DOM操作の一つとしてcssを変更する。 pタグのcssのborderを"solid black 2px"に変更したい場合は要素のstyleプロパティにアクセスして変更すれば良い。 てことで、要素の取得する。その要素のプロパティを変更する。このステップを踏めば良い。 <p id='practice'>styleを変更</p>…

vueのプロジェクト始め方(vue-cliを使って)

1. Vue cliをインストールする npm install -g @vue/cli vue --version 2. 新規プロジェクトの作成 #vue create プロジェクト名 vue create myproject プロジェクトを作る際に出てくるbabel, vuexについて - babelはトランスパイラ。 - Vuexは状態管理を行う…

SQLITE3のINSERT文を動的に作成する。

sqlite3のインサート文は文字列である必要がある。 文字列であるがゆえにダイナミックなインサートは実行しづらいが、 辞書型のデータをもとにインサート文を作成する事ができる。また同一の辞書型データからインサートの値であるタプルを作成できる。 だか…

Seleniumを使う際のメモ(改訂版)

困ったときの参照ページ Python + Selenium で Chrome の自動操作を一通り Selenium の API (Official) Selenium with Python 使用準備 まずseleniumを扱う環境を作成した。anacondaを利用して環境を設定した。 conda create -n selenium python=3.6.4 pip i…

VisualStudio Codeでエディタとターミナル間の移動をショートカットキーに登録する

参考 統合ターミナルウィンドウへフォーカスするショートカットキーを設定する - Qiita Ctrl+;でエディタ-ターミナル間を移動する(VSCode) 前提 前提としてショートカットキーを登録するには、ショートカットキーを登録するファイルが存在するので、そのファ…

Djangoのpermissionを付与するサンプルコード

基本的なmodelに基づくpermissionは自動的に作成される。ということで、permisson自体は作らず、作成されているpermissonを付与するサンプルコードを書く。 permissionを付与するにはUserに直接付与するケースとGroupに付与し、そのGroupに属するUserが間接…

gunicornについて

テーマ アプリケーション・サーバー間やりとり PythonではアプリケーションとWebサーバのインタフェースとして PEP3333 で定義された WSGI(Web Server Gateway Interface)という仕様が広く利用されているらしくgunicornについて全く分かっていないので少し理…

APIViewのpermission_classesはどんな仕組みで動いているのか

APIViewのプロパティは以下の通り。 # APIViewのプロパティ class APIView(View): # The following policies may be set at either globally, or per-view. renderer_classes = api_settings.DEFAULT_RENDERER_CLASSES parser_classes = api_settings.DEFAUL…

django permissonでリソースを制御する

webアプリの場合、認証する->認可するの流れをたどる。 この認可されたパーミッションにしたがってリソースのアクセス制御を実施したい。 djangoの場合どうすれば実装できるか? 下準備 Userオブジェクトにパーミッションを付加する Groupオブジェクトにパー…

email認証する方法

一つはUserモデルを自分で作成する方法。 もう一つは認証バックエンドにemailで認証するバックエンドを実装して、settings.pyでそれを使う宣言する方法。 後者を最近試してできたので時間があれば詳しく書きたい。 要点だけまとめておく。 1.備え付けのdjang…

pipenvを使ってみる

ドキュメント Pipenvの基本的な使い方 — pipenv 2018.11.27.dev0 ドキュメント 前提 os ... macos python... anacondaではなくbrewでインストールしたpython インストール brew install pipenv 仮想環境作る pipenv --python 3.8 # 3.8でも3でよい。指定した…

APIViewのauthentication_classesとpermission_classesについて分かったところまで。。。

DRF

書きかけ。。。 APIViewのオリジナルコード django-rest-framework/views.py at master · encode/django-rest-framework · GitHub # APIViewのプロパティ class APIView(View): # The following policies may be set at either globally, or per-view. rende…

djangoログイン時にクッキーにセッションIDをセットする仕組みを見てみたのでメモ

まず認証 認証はユーザーが誰であるかを特定するものである。そのためクレデンシャル情報を用いて認証を行う。 クレデンシャル情報は種類がある。 ユーザーの記憶によるもの(something you know) ユーザーが所有しているもの(something you have) ユーザーの…

authtokenをrestframeworkだけで実装して観察してみる

昔Token認可で実装したことがあるけど、rest-authを使って実装したのでライブラリを使わないで試してみる。 ドキュメント https://www.django-rest-framework.org/api-guide/authentication/#tokenauthentication settings.py まず、Tokenで認可させたい場合…

cookieやlocalStorageを操作するには?

アンドロイドアプリを作る場合はアプリのストレージ領域に暗号化したTokenを保管し、通信を行うときだけそれを引っ張り出してリクエストヘッダにセットして通信を行っていた。クライアントがブラウザの場合にはブラウザに保存するのでどうやって保存して取り…

djangoのキャッシュを使ったセッションの設定

ドキュメント: https://docs.djangoproject.com/ja/3.1/topics/http/sessions/#using-cached-sessions https://docs.djangoproject.com/ja/3.1/topics/cache/#django-s-cache-framework 手順 1 . 概要 今回memcachedにデータを保存するセッション方式の実装…

vscode 使い方メモ

ショートカットキーを使ってエディタとターミナルを移動する設定 https://torajirousan.hatenadiary.jp/entry/2021/01/13/170804 デバッグモード 最近デバッグモードの使い方が分かってきた。 自宅でも使えるように設定する際に調べたことを記録しておく。 …

vuexのメモ

コンポーネント間のデータの受け渡しについて。 コンポーネント間のデータの受け渡しの方法はいくつか方法があることがわかった。 props, emitを使った方法。 vuexを使った方法。 vuexを使った方法を考える。 コンポーネント間の通信:もうコンポーネントじ…

チーム開発で使うgitについて

プログラミングを始めてあと少しで3年になりますが、がっつり開発をやっている会社につとめるのは今回が初めてでgitによるチーム開発について分かったことを少しまとめる。 ブランチの扱い 自分の勤める環境では、master, dev, featureというブランチが存在…

javascriptのasync awaitについてメモ

typescriptをやってPromiseの存在を知った。がPromiseという概念が未だに分からない。。。 少し触ってみて多少のasyc awaitを使う場合と使わない場合で何か異なることを発見したので備忘録としてメモしておく。 async await を使わない場合 private uploadIm…

javascriptで画像アップロード

mpaのdjnagoで画像をアップロードするにはフロントエンドではhtmlにinputタグ(type="file")をセットして、何らかのボタンを押してpostメソッドで送信し、views.pyにてrequest.POSTのような形で画像データを取り出してやれば画像の取り扱いはできた。 しか…

typescriptとvueの単一ファイルコンポーネントを使う

設定条件: vue.js 2系(3系だと書き方が結構違うので困難だった。) typescriptを使う 単一ファイルコンポーネントを使う。単一ファイルコンポーネントではテンプレートとスタイルタグのみを記入し、スクリプトタグは.tsファイルの読込みのみ行う。 作ってみ…

チームで開発する際に分かったこと

修正や機能追加について -> どのように作業するのが効率が良いのか? -> そもそも既存のコード全体を眺めて理解しようとしてもあまり理解できなかった -> 修正や機能追加に関してはまず既存のプロダクトに似たような機能がないか確認する -> 現状では、その確…

djangoとvuejsをcdn以外の方法で共存させる

npmにvueを入れて構築する方法を試みる。djangoはdjango rest frameworkを使う。 今回気になる事項は、 どうやってdjangoとvueをcdn以外の方法で共存させる環境を構築するのか どういう仕組でdjangoとvueが連携する仕組みになっているのか vueを使うにあたり…