- 運営しているクリエイター
記事一覧
Djangoでミドルウェアを自作する #457
久しぶりの投稿になってしまいました。
腰の手術で入院していたことに加え、この度エンジニアとして転職することが決まり、次の現場で使われているGO言語のキャッチアップに時間を使っていたためです。
次はGOのアウトプットをしていこうと思ってましたが、現職でとても良い学びがあり、堪らずにDjangoでアウトプットしています。
Webミドルウェアとはミドルウェアという言葉はコンピュータサイエンスの様々な
Django_modelのManagerをオーバーライドしてカスタムする #430
Djangoのmodelで特殊な操作を実行するため、Managerをオーバーライドしてカスタムすることがあると思います。
しかしこのManagerにも2種類あって、使い分けなどややこしかったので違いを整理してみました。
以下の2つです。
・Djangoのmodels.Manager
・外部ライブラリdjango_mysqlのQuerySet
Djangoのmodels.ManagerDjan
Celeryでタスク実行されるまでの流れ #422
CeleryはPythonの分散タスクキュー(もしくは非同期タスクキュー)として使用される技術です。分散タスクキューでは、メッセージブローカーを介してタスク(作業の単位)を送受信し、複数のワーカープロセスがこれらのタスクを非同期に実行します。
Celeryの主な用途:
●非同期処理
●分散・並列処理
●スケジューリング
●耐障害性と拡張性
Djangoとも簡単に連携でき、バックグラウンドで計算
Django_フォルダを再帰的に論理削除する #387
Djangoでアプリケーションにおいて、レポート一覧をフォルダに分ける機能を実装しようとしています。今回はフォルダデータを持つモデルと、その削除方法について実装例をご紹介します。
アプリケーションの要件は以下です。
フォルダには複数のレポートを格納
フォルダの中にフォルダを作成可能
フォルダの削除に関する要件は4つ
削除は全て論理削除で行う(物理削除ではない)
削除時に指定するのは1フ
Django_データの組み合わせが一意になるようmodelに制約を付ける #384
Djangoの機能に関する簡単なメモです。
Djangoのモデルでは、データベースのスキーマをPythonのクラスとして表現します。各モデルクラスはデータベースのテーブルを表し、属性はそのテーブルのフィールドを表します。
そしてモデルにはMetaクラスというものを定義できます。これはモデルのメタデータを指定するためのものです。例えば、テーブル名やデフォルトのソート順、パーミッションなどを指定で
Django_transaction.atomicでハマった話 #368
結局自力では解決できなかったのですが、エラー事例の共有としてメモしておきます。
Djangoでモデル操作する際のデフォルトはオートコミットです。つまりcreateやdeleteなどを行うとその都度コミットされます。
ただ、一連の処理を以下のようにtransactionでラップできます。
with transaction.atomic(using=DBの名前): SampleModel.
Django_本番環境構築③_静的ファイルをS3からホスティングする #366
本番環境構築シリーズの第3弾です。
第1弾と第2弾は以下です。
前回まででEC2上でアプリケーションを起動しつつ、HTTPS通信でアクセスできるようところまで設定できました。
今回はDjangoとS3の設定を変え、静的ファイルのホスティングをS3から行えるようにしていきたいと思います。
パブリックアクセス可能なS3バケットが1つ準備してある前提です。
ではそれぞれの設定をメモしていきます。
Django_ContentTypeモデルとdumpdata, flush, loaddata, 自然キー #364
Djangoの少し深い機能についてメモしておきます。
ContentTypeモデルとはdjango.contrib.contenttypes.models.pyに定義されているContentTypeモデルは、アプリケーション内の各モデルに関連するメタデータを格納します。具体的には、アプリケーション名とモデル名の情報が含まれます。
テーブル名はdjango_content_typeで、マイグレー
Django_本番環境構築①_nginxとgunicornでDjangoアプリケーションを動かす #363
1週間ほど色々と沼にハマっており、更新が遅くなりました。
noteを始めてから最も長期間空けてしまいましたが、ちゃんとした本番環境の構築は初めての挑戦なので、やむなしと思うことにしています。
今回は、本番環境でアプリケーションを運用するためのシステム設計を行い、ローカル環境で動作させてみるところまでです。
本番環境はAWSを想定しており、最終的にはAWSやHTTPS、DNS周りの設定まで完成さ
Django_対話型シェルで特定のモジュールを動かしてみる_DJANGO_SETTINGS_MODULE #349日目
久しぶりの更新になってしまいました・・!
先週末に数年ぶりの家族旅行に出掛けていたのと、旅行先で子供が胃腸炎になり、家族が順番に罹患していったのが大きかったです。。
また徐々にアウトプットしていきたいと思います。
Djangoの開発業務で使えるTipsを教わったのでメモしておきます。
新たにメソッドを定義した時など、対話型シェルでサクッと動作確認したいケースがあると思います。しかしDjango
Django_管理画面に検索窓を設定する #310日目
Djangoの管理画面に関するメモです。
レコードが増えてきた時などは探すのが大変で、検索を掛けられるようにしたいと思います。Djangoの管理画面はデフォルトでそのような機能を用意してくれています。
class NoteOptions(admin.ModelAdmin): list_display = (‘id’,’author’,’text’,’writed_at’,’status’)
Django_モデルの値に操作を加えてから管理画面に表示 #307日目
Djangoの管理画面は非常に使い勝手が良いですが、簡単に使える分、ちょっとしたカスタマイズにもコツが必要です。
表示するフィールドの設定方法などは調べてすぐに出てくるのですが、フィールドの値に少し処理を加えてから表示したい場合の方法が中々見つかりませんでした。
しかし実は簡単に定義できます。
weightフィールドにfloat型の数字が入っていると仮定して、それをint型に直した数字を管理画