ikapper

Python3

Python MongoEngine リストフィールドから特定のドキュメントを削除する

MongoEngineでEmbeddedDocumentListFieldからドキュメントを削除する。重要なのは、$pullとその後のsaveだけ。実行環境は以下。Flask==1.0.2flask-mongoengine==0.9.5対象...
Docker

Docker nginx-proxy Django https接続時のapp/settings.pyの設定

Dockerで、Django appとjwilder/nginx-proxyとjrcs/letsencrypt-nginx-proxy-companionの3コンテナを連携させる時の、Django appのsettings.pyの設定メモ。...
Python3

Django 特定ビューのbasic認証をデコレータで

Djangoの特定のビューでbasic認証を使う。全体で使うならmiddlewareを自作すれば良いが、特定ビューの時は、デコレータが楽だった。まずは、app/decorators/basic_auth_decorator.pyを以下のよう...
Python3

Django クラスベースビューのメソッド内でURLのパラメータを使う

Djangoのクラスベースビューのメソッド内でURLのパラメータを取る。listviewのメソッド、get_queryset(self)内でURLのパラメータを取得したい。結論結論から述べると、メソッド内で、self.kwargsを使えばい...
Mac

Mac VSCode エディタで不可視な文字(制御文字)を表示させる

VSCodeで入力中に、不可視な文字が挿入される問題が、たまに起こっていた。Ankerの外付けキーボードからの入力限定で起こる様子。原因はよくわかってない。不可視な文字があると、Pythonなどのソースファイルでランタイムエラーだったり、コ...
Python3

Django model.save()はUPDATEが優先される

DjangoのModel.save()は主キーが重複するときは、INSERTでなくUPDATEになる。DBへの保存する列の主キーが重複するときの挙動を調べた。Model.save()は、同値の主キーが存在すると上書きするようだ。今回は、dj...
Docker

Docker コンテナ内のコマンドをホスト側から定期実行する

Dockerコンテナ内のコマンドをホスト側のジョブスケジューリング(cron)で定期実行する。追記2021/09追記: supervisordを使うケースについて:コンテナが増えてくると、ホスト側での管理が面倒なのでsupervisordを...
Docker

Docker alpine python lxmlのインストールでエラーが起きる

Dockerのalpine上でのpipenvでlxmlのインストール時に以下のエラーがでる。Could not find function xmlCheckVersion in library libxml2. Is libxml2 ins...
Python3

Django メールにファイルを添付する

Djangoのメール送信のメモデフォルトでSMTPによる送信が可能。settings.pyでのバックエンドの書き換えでコンソールに繋げられもする。EMAIL_BACKEND = 'django.core.mail.backends.cons...
Python3

Django ajaxでpostする。csrf_tokenもつける。

Djangoで、formを使わないでpostする。(jQuery使用)2019/04/27: getCookieとcsrf_tokenの誤字を修正2020/03/15: $.ajaxパラメータの誤字を修正Djangoでのpostの解説は、...