Django
Djangoフレームワークのテンプレートの継承について、基本的な内容です。 base.html というファイルを作って、共通部分をまとめる話。 検索用に記事をまとめておきます。 ※この記事は 力強くアウトプットする日の 20240301 のアウトプットです。 テンプレー…
2024/1/28にDjangoMeetupTokyo #12を開催しました。 DjangoMeetupTokyo #12 - connpass 去年の夏以来の開催でしたが、今回は前回の倍ぐらいの参加者が集まりました。 コロナ禍が落ち着いてきて、勉強会などのイベントで基本的に制限がなくなったので、コロナ…
Djangoフレームワークには、データをキャッシュする仕組みを抽象化、共通化したキャッシュフレームワークが含まれています。 Django's cache framework | Django ドキュメント | Django どのようなキーと値が保存されるのか キャッシュフレームワークのAPIで…
Djangoには、フレームワーク内での各種アクションの発生を他の機能へ通知する、シグナル(Signals)という機能があります。 Signals | Django ドキュメント | Django シグナルの機能を使うと、Djangoアプリケーション間のモジュールの依存関係を緩くできたり、…
Djangoフレームワークには、ウェブ用のFormを作る機能があります。 フォームを使う | Django ドキュメント | Django フォームを定義して実際にブラウザ上で表示するためには、ビューやテンプレートを用意する必要があるのですが、少しフォームを試したいだけ…
2023/10/27~10/28の2日間、PyCon APAC 2023に参加してきました。 今回はdjango-jaのポスターセッションをしました。 ポスターセッションは、所定の展示スペースに収まるサイズのポスターを作って、展示しておき、Breakの時間帯にはポスターの前に待機して、…
Djangoフレームワークのテンプレートエンジンは、『テンプレートをロードする処理』を自分で実装した処理に差し替えるための設定が用意されています。 django.template.loaders.base.Loader を継承したクラスを実装し、 settings.py で TEMPLATES を設定する…
2023/10/7にDjangoCongressJP 2023が開催され、参加してきました。 django.connpass.com 私は、登壇者として、また、スタッフとしての参加となりました。 登壇者として Djangoテンプレートエンジンの使い方や、カスタマイズについて発表しました。 初心者~…
Djangoの利用状況に関するアンケートを実施しています。 Djangoを使っている方は、ぜひご協力ください。 回答受付期間は、2023/10/2~2023/10/16。 forms.gle 集計結果はインターネット上で公開し、また今月のPyCon APAC 2023のポスターセッションでも発表予…
django-extensionsには、スクリプトファイルを実行するための runscript というコマンドが用意されている。 このコマンドを使うと、Djangoのコンテキスト(つまり、Djangoのsettings.pyが適用された、 django.setup() を実行済みの状態)で、Pythonのスクリ…
DjangoCongress JP 2023 のチケット販売が開始されました。私はスタッフ兼登壇者として参加します。 django.connpass.com パーティーでは色々な人と話せるのでおすすめです。久しぶりにパーティー有りの会なので楽しみです。
試したバージョンはPython3.10, Django 4.2.4, pymemcache 4.0.0 Djangoのキャッシュフレームワークを使うと、memcachedやRedisなどをキャッシュサーバーとして利用できる。 複数の値をキャッシュサーバーから読み書きする際、 cache.get() cache.set() を何…
Djangoでテンプレートエンジンを使う場合、テンプレートはファイルとして用意する場合が多いですが、文字列を入力とすることもできます。 The Django template language: for Python programmers | Django documentation | Django 試したバージョンは、Pytho…
Djangoの settings.SECRET_KEY は django.core.management.utils.get_random_secret_key 関数を使っているので、プロジェクト生成時のSECRET_KEYと同等の値を生成したい場合は、Pythonでこの関数の実行結果を利用できる。 シェルから、以下実行 python -c "f…
ウェブサービスの運営で、「特定のユーザーでログインして画面の動作を試す」ことをしたい場合、django-hijackというパッケージで簡単に実現できます。 試したバージョンは、Python 3.10, Django 3.2, django-hijack 3.1.2 です。 ドキュメント django-hijac…
Djangoではモデルクラスに primary_key=True のフィールドを明示的に定義しない場合、自動で id という名前で主キーのフィールドが追加されます。 Automatic primary key fields | Django documentation このとき使われるフィールドのクラスは、Django 3.1以…
@c_bata_ さんの著書、『実践Django Pythonによる本格Webアプリケーション開発』をいただいたので紹介します。 実践Django Pythonによる本格Webアプリケーション開発 (Programmer’s SELECTION)作者:芝田 将翔泳社Amazon 本書の内容 Djangoの基本機能、モデル…
Djangoフレームワークのセッションの有効期限について調べる必要があったのでまとめておく。 試したバージョンは、Python 3.9、Django 3.2.4。 ドキュメント Djangoのセッションについてのドキュメント https://docs.djangoproject.com/ja/3.2/topics/http/s…
Djangoフレームワークの管理コマンド(manage.py スクリプトのコマンド)をオーバーライド(上書き、置換え)する方法について。 管理コマンドの登録の仕組み Djangoのドキュメントには、管理コマンドのオーバーライドについての記載があります。 https://docs.d…
『現場で使えるDjango管理サイトのつくり方』 著者のakiyokoさんから献本いただきました。 Djangoの管理サイト(Django Admin)にフォーカスした内容の本です。 https://www.amazon.co.jp/dp/B08HVJPRR8/?tag=tokibitossoft-22www.amazon.co.jp 対象の読者 こ…
VPSなどの環境で、1つのVMインスタンスにたくさんDjangoアプリをホストしたいなー、という場合の構成を考えたりしてました。 自分で運用しやすい形にまとまったので、メモを残しておきます。 要件 1台のVMで複数種類のDjangoアプリを動かす VMのメモリは2~4…
Djangoに限ったことではないのですが、PythonのloggingでrootのハンドラをDEBUGにしていると、IPythonの補完を実行した際にparsoという依存ライブラリのログが出てしまい、カーソル位置がずれてしまうことあります。 例えば、Djangoで以下のように settings.…
6/1に札幌で開催された オープンソースカンファレンス2019 Hokkaido で、django-ja名義でDjangoフレームワークの紹介をしてきました。 資料はSpeakerDeckにアップロードしています。 Djangoフレームワークの紹介_OSC北海道2019 - Speaker Deck 日本のDjango…
DjangoのORMで、サブクエリを使う方法について。任意のSQLであればrawメソッドを使えばよいのですが、なるべくORMのAPIを使いたい。 DjangoのORMでは任意の位置にサブクエリを使えるわけではないですが、例えば「テーブル単位での問い合わせ結果にサブクエリ…
Djangoのマイグレーションは、1つのマイグレーションで複数のタスクを実行できます。 スキーマを変更する処理のあとに、データのマイグレーションを実行、といったようなものです。 意味のある変更をまとめるのは便利そうに思えるのですが、落とし穴があった…
AppEngineで動かしてるDjangoアプリをStackdriver Debuggerでデバッグする手順について。 Python 用 Stackdriver Debugger の設定 | Stackdriver Debugger のドキュメント | Google Cloud ドキュメントには、Django 1.Xの話しかなく、手順も良くなかったので…
PythonのloggingモジュールからStackdriverにログを流す手順はドキュメントに書かれている。 Setting Up Stackdriver Logging for Python | Stackdriver Logging | Google Cloud Djangoフレームワークを使っている場合は、Djangoのロギング設定を考慮する必…
Djangoフレームワークでは、データベースルータークラスを作成して、 settings.DATABASE_ROUTERS に設定することで、モデル毎に使用するデータベースを変えたりできます。 データベースルーターにはいくつかのメソッドを実装しますが、その中の一つ、 allow_…
GoogleAppEngineのStandard環境でPython3.7のランタイムがベータ版で利用できるようになったので、試していました。 ドキュメントにはFlaskアプリケーションをデプロイする手順が記載されていましたが、Djangoアプリケーションだと少し設定が追加で必要だっ…
7/7にオープンソースカンファレンス2018 Hokkaidoに行ってきました。 www.ospn.jp 北海道のOSCにはここ数年は参加し続けてますが、セミナーや展示の数も多く、毎年楽しめてます。 今回もdjango-ja名義でDjangoフレームワークの紹介をしました。資料は去年の…