delhi09の勉強日記

技術トピック専用のブログです。自分用のメモ書きの投稿が多いです。あくまで「勉強日記」なので記事の内容は鵜呑みにしないでください。

2020-05-01から1ヶ月間の記事一覧

Dockerコンテナ上のMySQLにホストOSから接続できなくて調査・対応したのでメモ

事象 公式のMySQLのDockerコンテナ上のMySQLにホストOS(Mac)から接続しようとしたところ、以下のようなエラーが発生して接続できなかったので、対応をメモしておく。・エラーその1 ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (61)エ…

Pythonでファイル読み込み時の例外の発生件数を集計する

概要 Pythonで10万行規模のテキストファイルを読み込んでいたところ、以下のような例外が発生して処理が途中で異常終了してしまった。 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xae in position 5269: invalid start byteファイルにUTF-8にデ…

DjangoをEC2インスタンス上で動かす環境を構築する(その9:EC2をALBに組み込んでみる。)

概要 当初の予定にはなかったが、せっかくなので、AWSの勉強も兼ねて、ALB(Application Load Balancer)を作成して、EC2をALBに組み込んでみる。 その1:ユーザー作成 その2:必要なソフトウェアのインストール その3:ソースコードの配置 その4:「SQLite 3.8.3 …

DjangoをEC2インスタンス上で動かす環境を構築する(その8:静的コンテンツを配信できるようにする。)

概要 DjangoをEC2インスタンス上で動かす環境を構築するまでにやったことを書いていく。 その1:ユーザー作成 その2:必要なソフトウェアのインストール その3:ソースコードの配置 その4:「SQLite 3.8.3 or later is required」エラー対応 その5:GunicornでDja…

DjangoをEC2インスタンス上で動かす環境を構築する(その7:Gunicornの前段にNginxを配置する。)

概要 DjangoをEC2インスタンス上で動かす環境を構築するまでにやったことを書いていく。 その1:ユーザー作成 その2:必要なソフトウェアのインストール その3:ソースコードの配置 その4:「SQLite 3.8.3 or later is required」エラー対応 その5:GunicornでDja…

DjangoをEC2インスタンス上で動かす環境を構築する(その6:アプリケーションログを出力する。)

概要 DjangoをEC2インスタンス上で動かす環境を構築するまでにやったことを書いていく。 その1:ユーザー作成 その2:必要なソフトウェアのインストール その3:ソースコードの配置 その4:「SQLite 3.8.3 or later is required」エラー対応 その5:GunicornでDja…

DjangoをEC2インスタンス上で動かす環境を構築する(その5:GunicornでDjangoアプリを起動する。)

概要 DjangoをEC2インスタンス上で動かす環境を構築するまでにやったことを書いていく。 その1:ユーザー作成 その2:必要なソフトウェアのインストール その3:ソースコードの配置 その4:「SQLite 3.8.3 or later is required」エラー対応 その5:GunicornでDja…

DjangoをEC2インスタンス上で動かす環境を構築する(その4:「SQLite 3.8.3 or later is required」エラー対応)

概要 DjangoをEC2インスタンス上で動かす環境を構築するまでにやったことを書いていく。 その1:ユーザー作成 その2:必要なソフトウェアのインストール その3:ソースコードの配置 その4:「SQLite 3.8.3 or later is required」エラー対応 その5:GunicornでDja…

DjangoをEC2インスタンス上で動かす環境を構築する(その3:ソースコードの配置)

概要 DjangoをEC2インスタンス上で動かす環境を構築するまでにやったことを書いていく。 その1:ユーザー作成 その2:必要なソフトウェアのインストール その3:ソースコードの配置 その4:「SQLite 3.8.3 or later is required」エラー対応 その5:GunicornでDja…

DjangoをEC2インスタンス上で動かす環境を構築する(その2:必要なソフトウェアのインストール)

概要 DjangoをEC2インスタンス上で動かす環境を構築するまでにやったことを書いていく。 その1:ユーザー作成 その2:必要なソフトウェアのインストール その3:ソースコードの配置 その4:「SQLite 3.8.3 or later is required」エラー対応 その5:GunicornでDja…

DjangoをEC2インスタンス上で動かす環境を構築する(その1:ユーザー作成)

概要 DjangoをEC2インスタンス上で動かす環境を構築するまでにやったことを書いていく。 その1:ユーザー作成 その2:必要なソフトウェアのインストール その3:ソースコードの配置 その4:「SQLite 3.8.3 or later is required」エラー対応 その5:GunicornでDja…

「WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.」について

Amazon Linux 2上でpip installしようとしたところ、以下の警告に遭遇したので、調べたことを書く。 WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead まとめ root(sudo)でpip install…

「terraform apply」実行時に「InvalidAMIID.NotFound」エラーが発生

事象 Terraform初心者なので、以下の本の「第2章 基本操作」のチュートリアル に従って勉強をしていた。https://www.amazon.co.jp/実践Terraform-AWSにおけるシステム設計とベストプラクティス-技術の泉シリーズ(NextPublishing)-野村-友規/dp/4844378139/…

tfenvインストール時に「Error: Cannot install tfenv because conflicting formulae are installed. terraform: because tfenv symlinks terraform binaries」エラーが発生

tfenvインストール時に以下のエラーが発生したのでメモ 事象 $ brew install tfenv Updating Homebrew... ==> Downloading https://github.com/tfutils/tfenv/archive/v1.0.2.tar.gz ==> Downloading from https://codeload.github.com/tfutils/tfenv/tar.gz…

Djangoで複数のDBを使用する方法について検証する(usingを使う場合)

Djangoで複数のDBを使用して、向き先を切り替える方法について検証した。公式ドキュメントは以下 docs.djangoproject.com 理由 本番で稼働させるWEBアプリケーションでは、負荷分散のためにread-onlyのRDBと書き込み用のRDBの複数台構成にして、複数のDB間で…

初回のマイグレーション時に使用されるマイグレーションファイルの場所

Djangoでまだモデルを作成していない状態で $ python manage.py migrate を実行すると、以下のようにDBにマイグレーションが適用される。 $ python manage.py migrate Operations to perform: Apply all migrations: admin, auth, contenttypes, sessions Ru…

Djangoのパーミッション機能を使ってアクセス制限をかけてみる

前々回、前回に引き続きDjangoのパーミッションについて勉強する。今回はDjangoのパーミッション機能を使ってアクセス制限をかけてみる。公式ドキュメントは以下 docs.djangoproject.com やること 「view_question」のパーミッションを持っていないユーザー…

Djangoのカスタムパーミッションを作成してみる

前回に引き続きDjangoのパーミッションについて勉強する。今回はカスタムパーミッション(add・change・delete・view以外のパーミッション)を作成してみる。公式ドキュメントは以下 docs.djangoproject.com モデルクラスのMetaクラスにカスタムパーミッション…

Djangoのビルトインのパーミッション機能の仕組みを理解する

Djangoのビルトインのパーミッション機能について、仕組みを理解するために記事を書く。※ Djangoのパーミッションの仕組みに関する公式ドキュメントは以下 docs.djangoproject.com 目的 Djangoのビルトインのパーミッション機能の仕組みを理解する。 自分が…

DjangoでUserモデルのインスタンスにpasswordをsetするときにはset_passwordメソッドを使う

少しハマったのでメモ 事象 Djangoの勉強用のプロジェクトで以下のようなコードを書いていた。 ユーザー登録完了後にsqliteのauth_userテーブルの中身をみたところ、パスワードが平文で保存されていることに気がついた。(ハッシュ化されていなかった。) from…

Docker上のDjangoアプリをVS Codeでデバッグ実行する (2020/5/9時点)

前回はMacOS上でDjangoアプリをVS Codeでデバッグ実行することに成功したので、今回はDocker上のDjangoアプリをVS Codeでデバッグ実行する方法を検証する。公式ドキュメントは以下 code.visualstudio.com 目的 Docker上のDjangoアプリをVS Codeでデバッグ実…

Djangoのrunserverは「--noreload」を付けない場合プロセスが2つ立ち上がる

「python3 manage.py runserver 0.0.0.0:8000」で起動したサーバーのプロセスを確認したところ、プロセスが二つ存在することに気づいた。 bash-4.2# ps aux | grep "runserver" | grep -v "grep" root 15 2.2 1.7 231188 36440 pts/1 S+ 08:56 0:00 python3 …

DjangoアプリをVS Codeでデバッグ実行する (2020/5/6時点)

DjangoアプリをVS Code上でデバッグ実行したのでメモ以下の公式ドキュメントを参照して進めていく。 code.visualstudio.comデバッグ対象のアプリには公式のDjangoチュートリアル を自分でやってみた際のコードを使用する。 https://github.com/kamatimaru/dj…

SQLite3のコマンドのメモ

Djangoにデフォルトで同封されているDBはSQLite3なので、開発環境ではSQLite3を使用することがあるが、コマンド体系が慣れないのでメモ・ログイン $ cd /path/to/sqlite3_dir $ sqlite3 ./db.sqlite3・DB名一覧を表示 sqlite> .databases※末尾にセミコロンは…

VS Codeはvenv配下のPythonのパスを自動で認識してくれる

VS Codeは環境変数に登録されたPythonのパスしか認識してくれないと思っていたのだが、venvで作成したディレクトリ配下のPythonのパスがVS Code側で自動で認識されており、かつ使用するPythonとして設定されていることに気づいた。 そこで、VS CodeがPython…

flake8、black、isort、mypyをVS Code上で使用する

これまでPythonの各種コードチェッカー・フォーマッターの使い方をみてきたので、次にVS Codeとの連携方法について書く。 過去の記事はこちら kamatimaru.hatenablog.com kamatimaru.hatenablog.com kamatimaru.hatenablog.com flake8 ・Lint機能が有効にな…

Balsamiq Wireframeを試してみる (2020/5/3時点)

『自走プログラマー』の「5.2 画面モックアップ」で紹介されていた「Balsamiq Wireframe」が良さそうだったので試してみる。英語サイトしかないこと及び、意外と日本語の情報が少なかったので、記事にしておく。 公式サイト 以下 balsamiq.com 製品の種類 Cl…

Django Girls TutorialのアプリをDocker環境(Django × MySQL × Redis)で動かすまで

Django Girls TutorialのアプリをDocker環境(Django × MySQL × Redis)で動くようにしてみた。 その際にポイントだと思ったこと・ハマったことを備忘録として残しておく。githubのリポジトリは以下 https://github.com/kamatimaru/djangogirls-tutorial-docke…

venvの使い方に関するTips

venvを使っていて、いくつか思ったことがあるのでメモ ディレクトリ名は「.venv」がよい venvでは $ python -m venv ${ディレクトリ名} で、仮想環境のディレクトリ名を指定する。この際に、以前はプロジェクト固有のディレクトリ名をつけていたが、以下の理…