Django

Djangoにて、ASGIミドルウェアのasgi-correlation-idを使って、HTTPリクエストごとの識別子(Request-ID) をログに出力してみる

前回の記事では、 Django + django-log-request-id という構成で、HTTPリクエストごとの識別子(Request-ID) をログに出力してみました。 また、記事ではRequest-IDをログに出力するサードパーティライブラリを調べました。その中にASGIミドルウェアの asgi-c…

Djangoにて、 django-log-request-id を使ってHTTPリクエストごとの識別子(Request-ID) をログに出力する

OpenTelemetryやログ集約などが不要そうな小さなシステムであっても、HTTPリクエストごとの識別子がログに含まれていると、何かあった時に「どのHTTPリクエストによりログが出力されたのか」を追いかけやすいです。 そこで、DjangoでHTTPリクエストごとの識…

React + DjangoなWebアプリに対して、PlaywrightでいろいろなE2Eのテストコードを書いてみた

前回の記事で、Playwrightを使ってDjango + ReactのE2Eテストができると分かりました。 WSL2 + Playwrightな環境にて、codegen機能によりReactアプリやDjango管理サイト向けのテストコードを自動生成してみた - メモ的な思考的な 前回は自動生成したテストコ…

WSL2 + Playwrightな環境にて、codegen機能によりReactアプリやDjango管理サイト向けのテストコードを自動生成してみた

前回の記事にて、WSL2上にPlaywrightをインストールして動作することを確認しました。 WSL2上にインストールしたPlaywrightを、Visual Studio Codeから動かしてみた - メモ的な思考的な これにより環境ができたため、次はPlaywrightのcodegen機能でテストコ…

drf-spectacularを使って、Django REST frameworkの実装からOpenAPI 3.0系のスキーマを生成する

これは Djangoのカレンダー | Advent Calendar 2022 - Qiita 12/13の記事です。 Django REST framework(DRF)でOpenAPI 3系のスキーマを生成しようと考えた時、DRFの公式ドキュメントでは DRFの機能を使う Schemas - Django REST framework サードパーティパ…

django-vite を使って、Django の template 上で React を動かしてみた

これは Djangoのカレンダー | Advent Calendar 2022 - Qiita 12/6の記事です。 フロントエンドのビルドツール Vite を使って、ReactをDjangoで動かす方法を調べたところ、awesome-viteのページに django-vite の記載がありました。 Integrations with Backen…

Python + Django + Highcharts + Coogle Cloud Cloud Run + Cloud Storage + Litestream で食べたリンゴの割合をグラフ化してみた

今まで、「食べたリンゴの割合をグラフ化するアプリ」をHerokuで動かしていました。 Python + Django + Highcharts + Herokuで食べたリンゴの割合をグラフ化してみた - メモ的な思考的な そんな中、個人的に使ってみたかったGoogle Cloudで動かせるか気にな…

Django + google-authで、Google Cloud SchedulerからのHTTPリクエストのみ受け付けるAPIエンドポイントを作成する

Djangoアプリでのジョブをスケジューリングしたいと思い、Google Cloud Schedulerのドキュメントを読んだところ Cloud Scheduler では、作業単位のスケジュールを設定して、定義した回数または一定の間隔で実行できます。これらの作業単位は、一般的に cron …

Djangoアプリを、Coogle Cloud の Cloud Run + Cloud Storage + Litestream な環境で動かしてみた

以前、Djangoで作った個人アプリを Python 3.10 & Django 4.1 へとアップデートしました。 Python3.7 & Django 2.1 な個人アプリを Python 3.10 & Django 4.1 へとアップデートした - メモ的な思考的な その時、データベースをPostgreSQLからSQLiteに切り替…

Tweepyをアップデートしたタイミングで、使用するTwitter APIを v1.1 から v2 に切り替えてみた

以前、個人アプリを Python 3.10 & Django 4.1 へとアップデートしました。 Python3.7 & Django 2.1 な個人アプリを Python 3.10 & Django 4.1 へとアップデートした - メモ的な思考的な その際、 pip-review で他のライブラリのバージョンも最新に上げたた…

WSL2 + Ubuntu 22.04.1 な環境上のDockerへ、既存のDjangoアプリを載せてみた

前回の記事にて、個人アプリをDjangoを4.1にアップデートするついでに、DBをPostgreSQLからSQLiteへと移行しました。 https://thinkami.hatenablog.com/entry/2022/09/14/215942 DBをSQLiteに移行したことにより、DjangoアプリをDockerの1コンテナで起動でき…

Python3.7 & Django 2.1 な個人アプリを Python 3.10 & Django 4.1 へとアップデートした

前回の記事で環境を構築したアプリですが、動作環境は Python 3.7 & Django 2.1 でした。 Python3.4 & Django1.8な個人アプリを、Python3.7 & Django 2.1 へとアップデートした - メモ的な思考的な また、ブログには書いていませんでしたが、その後 Python 3…

WSL2 + Ubuntu 22.04.1 LTS上のDjangoアプリを、JetBrains Gateway + PyCharmにて開発し、Herokuにpushできるようにしてみた

しばらく前に ThinkPad P14s AMD Gen2 を購入し、使い始めました。 一通りのPCセットアップができたため、次は開発環境を構築することにしました。 そこで、WSL2 + Ubuntu 22.04 上に、過去作成したDjangoアプリの開発環境を構築してみたため、流れをメモに…

React + TypeScript + Django REST frameworkでToDo管理アプリを作ってみた

先日、大岡由佳さんの「りあクト! 第3.1版 (2020年12月26日 初版第1刷発行)」を読みました。書籍では理由や経緯などが書かれており、とてもためになりました。ありがとうございました。 りあクト! TypeScriptで始めるつらくないReact開発 第3.1版【Ⅰ. 言語…

ダンボールに入れた本を管理するDjangoアプリ「danborary」を作った

家の本棚スペースが限られているため、年末の大掃除であまり読まなくなった本をダンボールに詰めようと考えました。 ただ、何も考えずに詰めると、どの箱に何の本があるか分からなくなります。 そこで、今年さわった技術を使って、ダンボールに入れた本を管…

Djangoとyamdlにより、fixtureを使わずにYAMLとモデルを紐付ける

これは JSL(日本システム技研) Advent Calendar 2020 - Qiita の12/21分の記事です。 ちょっとしたDjangoアプリを作る中で、 モデルのデータソースはYAMLにしたい YAMLはマスタ的存在 モデル間のリレーションは存在しない YAMLを書き換えた場合、Djangoアプ…

django-cteと共通テーブル式(CTE)を用いた再帰クエリにより、階層構造を持つテーブルからデータを取得する

これは Django Advent Calendar 2020 - Qiita 兼 JSL(日本システム技研) Advent Calendar 2020 - Qiita の12/16分の記事です。 Djangoと共通テーブル式(Common Table Expression、CTE)を用いた再帰クエリを使って、階層構造を持つテーブルからデータを取得し…

Djangoで、SILENCED_SYSTEM_CHECKSを定義してSystem check frameworkのメッセージ出力を抑制する

これは JSL(日本システム技研) Advent Calendar 2020 - Qiita 12/15分の記事です。 DjangoにはSystem check frameworkがあり、Djangoプロジェクトの正しさをチェックしてくれます。 System check framework | Django ドキュメント | Django そんな中、特定の…

Django3系のORMでSQLのEXISTS句を使う

この記事は、 JSL(日本システム技研) Advent Calendar 2020 - Qiita 12/3の記事です。 以前、SQLをDjangoのQuerySet APIでどう実装するのかを書きました。 SQLのSELECT文を、DjangoのQuerySet APIで書いてみた - メモ的な思考的な SQLのINSERT, UPDATE文を、…

django-datatables-viewによるServer-side processingで、DataTable向けのクエリパラメータを追加する

django-datatables-viewによるServer-side processingで、DataTable向けのクエリパラメータを追加しようと考えた時に詰まったことがあったため、メモを残します。 目次 環境 やりたいこと 対応 フロントエンド バックエンド ソースコード 環境 Python 3.8 Dj…

django-datatables-viewによるServer-side processingで、フォームの入力値に基づいてDataTableの絞り込みを行う

django-datatables-viewで、フォームの入力値に基づいてDataTableの絞り込みを行おうと考えた時に詰まったことがあったため、メモを残します。 目次 環境 DataTableのSearchについて やりたいこと 実装 フロントエンド バックエンド 参考:Search機能との連…

django-datatables-viewによるServer-side processingで、モデルの複数列を結合して表示する

django-datatables-viewで、モデルの複数列を結合して表示しようと考えた時に詰まったことがあったため、メモを残します。 目次 環境 やりたいこと エラーとなる方法 動作する方法 ソースコード 環境 Python 3.8 Django 3.1.2 django-datatables-view 1.19.1…

django-datatables-viewによるServer-side processingで、色々なソートを試してみた

ライブラリ django-datatables-view を使ってjQuery DataTableのServer Side Processing を行った際、ソートを実装することがありました。 ただ、ソートを実装しようとしたところ詰まったことがあったため、メモを残します。 目次 環境 ソートを意識しない時…

django-datatables-viewによるServer-side processingで、モデルの外部キーの項目を表示する

バックエンドがDjangoの環境にて、jQuery DataTable を使う機会がありました。 DataTables | Table plug-in for jQuery データ量がそれなりにあったので、DataTableのServer Side Processingを使いました。 DataTables example - Server-side processing Dja…

Django REST Framework + jQuery + S3で画像ファイルアップローダーを作った時のメモ

Django REST Framework + jQuery + S3で画像ファイルアップローダーを作る機会がありました。 その中で色々と考えたことをメモに残します。 なお、実装の詳細は以下となります。 thinkAmi-sandbox/image_uploader_by_drf_jquery_s3 目次 環境 仕様など 画面…

Django REST FrameworkのDEFAULT_PARSER_CLASSESの初期値について

Django REST Frameworkでは、 DEFAULT_PARSER_CLASSES の設定により、グローバルで使われるParserが決まります。 Parsers - Django REST framework ただ、その初期値をうっかり忘れていたので、メモを残します。 目次 環境 うっかりしていたこと 動作確認 ア…

Djangoのmodels.ForeignKeyにおけるrelated_nameとrelated_query_nameについて調べてみた

最近、同僚の @qtatsu に「models.ForeignKeyのrelated_nameに + を指定すると逆引き不可にできる」ということを教わって、そういえばこのあたりを理解してないなと思って調べた時のメモです。 目次 環境 models.ForeignKeyにおけるrelated_nameについて rel…

Django REST Frameworkで、 django-rulesを使ってみた

前回、Djangoで django-rules を使ってみました。 django-rulesを使って、オブジェクトレベルの認可判定をViewとテンプレートでそれぞれ実装してみた - メモ的な思考的な READMEには、Django REST Framework(以降、DRF)でも、 django-rulesが使えるとの記述…

django-rulesを使って、オブジェクトレベルの認可判定をViewとテンプレートでそれぞれ実装してみた

Djangoには認可機能が標準で用意されています。 ただ、標準の認可機能の場合、モデルごとの認可判定は可能な一方で、オブジェクトごとの認可判定ができないようです。 Django のパーミッションフレームワークはオブジェクトパーミッション基盤を持っています…

Django + django-rules + 独自Userモデルで、has_permテンプレートタグを使うときの注意点

Djangoには標準で認可(Permission)の仕組みがあります。 ただ、Django標準の認可はモデルレベルです。オブジェクトレベルは Django のパーミッションフレームワークはオブジェクトパーミッション基盤を持っていますが、コアには実装されていません。 https:/…