[Dd]enzow(ill)? with DB and Python

DBとか資格とかPythonとかの話をつらつらと

Djangoのtemplateでifを省略する(yesnoフィルター)

Djangoのtemplateでちょっとしたifを省略する場合の話です。Listを元にDOMノードを作成しているときに、元データに応じてCSSクラスを変更したい場合の話です。以下のようなケースをもう少しきれいに書きたくなったので調べました。

    <ul>
        {% for row in data_list %}
            {% if row.is_active %}
                <li class="active">  <!-- is_activeの場合にactivteクラスを付与したい-->
            {% else %}
                <li class="">
            {% endif %}
            
            {{ row.value }}
        </li>
        {% endfor %}
    </ul>
続きを読む

Pythonでシングルトン(Singleton)を実装してみる

最近はHead First デザインパターンを読みながら、デザインパターンの勉強をしています。この本は読みやすくてとても参考になるのですが、サンプルの実装はJavaになっておりそのままPythonに移植することはできません。

第5章がシングルトンパターンですが、そもそもPythonでどのようにシングルトンを実装すべきかがわからなかったので確認した結果を残しておきます。

続きを読む

AWS WorkMail をboto3でユーザー登録する

AWS WorkMail、便利ですね。AWSが提供しているメールサービスで、独自ドメインでメールの送受信ができます。自社のサービスでは、お客様ごとにメールアドレスを発行しており、その際にWorkMailを使っています。

現在は契約処理の一環で担当者がWorkMailにアカウントを作成していますが、これを自動化するための調査をしました。当たり前ですが、使うのはboto3です。よっぽどマニアックな処理でなければ、AWSコンソールからできる作業はboto3でできますね。

続きを読む

boto3でAWSのRDSインスタンスを再作成する

2018年もはじまって1週間、そろそろ社会復帰しないといけないですね。昨年末にRDSやらboto3やら触っていたのでそこら辺まとめておきます。

解決すべき課題

  • RDSはいずれもMySQL
  • 本番のRDSがある(本番RDS)
  • 開発用環境のRDSがある(開発RDS)
  • 開発RDSのデータは本番RDSから不定期に同期させている
  • 同期にはmysqldumpしたデータを流し込む方法を使用している

結構データ量があるので、mysqldumpでの取得と流し込みがかなり時間がかかっており、あまり気軽にデータの同期ができていませんでした。これをどうしたかという話です。

続きを読む

Djangoのモデルであとからユニーク + NOT NULLな列を追加する

Djangoはモデルの内容が変更されても、makemigrationsしてmigrateすればDBにモデルの変更を反映できるので楽でいいですね。しかし、ちょっとユニーク制約をもったカラムを追加しようとしたら簡単にはいかないケースに遭遇したのでメモを残しておきます。

続きを読む