Python
terapyon channel podcast にゲスト参加で話してきました。 podcast.terapyon.net トークの内容はDjangoCongressJPの振り返りや、DSFについて、参加予定のカンファレンス(TechRAMEN 2025, PyConJP 2025)について、Vibe Codingについてなど 前回 tokibito.h…
実際に必要になったわけではないので、遊びみたいなものなのですが、Djangoのセッションの仕組みを理解しておくと、こういうこともできるよ、という例のために、DjangoのセッションデータをPHPから読み書きするのをやってみました。 Djangoのセッションの概…
Python用のWSGIアプリケーションサーバーであるGunicornは、プロセス管理機能を持つマスタープロセスと、アプリケーションを動作させるワーカープロセスで構成されています。 親プロセス側となるマスタープロセスにシグナルを送ることでワーカープロセスを制…
Pythonでターミナル(コマンドライン)から利用するCUIのアプリケーションを作る際、処理の進捗状況を表示するときに少しリッチにしたい。 richというライブラリを使うと簡単にできました。このライブラリは、PythonでCUIアプリを作る際にリッチなUIを簡単に…
Django 5.2 alpha 1がリリースされています。 Djangoのalphaリリースは、まだ開発中の扱いです。alpha, beta, rc, stable(=無印) の順でだいたいリリースされます。 Django 5.2 alpha 1 released | Weblog | Django Django 5.2のリリースノートを見ると、 "C…
「macOS環境でmysqlclientのインストールがうまくいかない」とチーム内で相談があり、自分の環境でもうまくいかなかったので解決までのメモを残しておきます。 環境は、Mac mini 2023 Apple M2, macOS Sonoma 14.6, Python3.12です。 MySQLクライアントとpkg…
Pydanticは、Pythonでデータの検証(バリデーション)を実装するためのライブラリです。 基本的な入力型の検証はTypingを記述するだけで実装できるということで、最近の型ヒントを記述するPythonコードと組み合わせて使うことを想定しています。 docs.pydant…
terapyon channel podcast にkyさんと一緒にゲスト参加で話してきました。 podcast.terapyon.net トークの内容はDjangoとDSF、DjangoCongress JPのトーク募集などについてです。 DjangoCongress JP 2025 では、Python非同期Webのテーマでもトークを募集して…
Djangoフレームワークにはテンプレートエンジンを別のものに切り替える機能があります。 Django Cottonというテンプレートエンジンを試してみたので、メモを残しておきます。 django-cotton.com GitHub - wrabit/django-cotton: Enabling Modern UI Composit…
先日、 django-jaのDiscord で出た話題ですが、Djangoで作成したアプリを本番環境で動かす際のアプリケーションサーバーについてです。 具体的にはWSGIとASGIどちらを使うのか、そしてアプリケーションサーバーはどれがよいのか。 WSGIかASGIか DjangoをWSGI…
Bootstrapはフロントエンド向けのツールキットです。 getbootstrap.com BootstrapにはCSSやJavaScriptが用意されていて、ウェブページに組み込む場合は、HTMLタグにclass属性を指定すると、用意されているデザインが適用される、というものです。 メジャーバ…
SymPy はPython上で数式を扱うモジュール。 SymPyに含まれるparse_latex関数を使うと、LaTeXの書式で書かれた数式も読み込める。 これをPyodideで使いたいと考えていた。 少し試しただけですが、実用にはまだ厳しいかもと思いました。 parse_latexはデフォル…
docutilsはreStructuredTextをPythonで扱うためのモジュール。 Pyodide上でdocutilsを動かせば、ブラウザ上だけでreStructuredTextを扱えるかなと思って試していました。 コード pyodide-docutils.html: <html> <head> <script src="https://cdn.jsdelivr.net/pyodide/v0.24.1/full/pyodide.js"></script> </head></html>
先日のPyCon Kyushu Kagoshima 2024で登壇したcProfileの資料の内容から抜粋しつつ、cProifleの使い方について少し書いてみます。 tokibito.hatenablog.com Pythonのプロファイルとは Pythonの実行に関する統計情報 関数がどれだけ呼ばれたか 実行時間どのぐ…
2024/5/25にPyCon Kyushu Kagoshima 2024が鹿児島県で開催され、参加してきました。 kyushu.pycon.jp 私はPythonのプロファイラの使い方の紹介をしました。 speakerdeck.com イベント参加者数が予想以上に多くて、賑わっていたように思います。 鹿児島はアー…
ウェブアプリの外形監視をするときには、外形監視用のエンドポイントURLを用意することが多いと思います。 外形監視用のエンドポイントでは、アプリからデータベースなど各種ミドルウェアへの接続が正常であるかなどをチェックしますが、チェック項目はサー…
Djangoのフォーム機能は通常、 django.forms.Form クラスを継承して定義をします。 フォームを使う | Django ドキュメント | Django リクエスト時に動的にフォームクラスを生成したい場合もあるので、今回はそれをやってみます。 フォームクラスを動的に生成…
Pythonのdataclasses.dataclassは普段からたまに使っていますが、良く使っている書き方を人に紹介するためにメモを残します。 dataclasses - データクラス - Python 3.12.2 ドキュメント dictと相互変換するクラス オブジェクトとdictで相互変換するクラスを…
Djangoフレームワークには、データをキャッシュする仕組みを抽象化、共通化したキャッシュフレームワークが含まれています。 Django's cache framework | Django ドキュメント | Django どのようなキーと値が保存されるのか キャッシュフレームワークのAPIで…
terapyon がやっている terapyon channel podcast にゲストでお呼ばれして、しゃべってきました。 #88 tokibitoさんをゲストに JMOOCの無料Python講義のリニューアルとプログラミング教育 | terapyon channel podcast 話題は先日のJMOOCの教材作成についてや…
JMOOCで2020年に公開していたPythonの入門者向けの動画教材ですが、昨年の11月に内容を更新したものを公開していました。 まだ記事にしていなかったので、ここでも書いておきます。 Python入門2023改訂版 - Python3.11対応版 Pythonによるプログラミング入門…
Pyodideは、CPythonをWebAssembly(WASM)/Emscriptenにポーティングしたソフトウェア。 PythonがWASMとして動作するので、ブラウザ上でPythonを動かせる。 pyodide.org ドキュメントには実際に動作するREPLのリンクがある。 https://pyodide.org/en/stable/…
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 を設定する…
django-extensionsには、スクリプトファイルを実行するための runscript というコマンドが用意されている。 このコマンドを使うと、Djangoのコンテキスト(つまり、Djangoのsettings.pyが適用された、 django.setup() を実行済みの状態)で、Pythonのスクリ…
試したバージョンは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-ftpserver はDjangoフレームワークに依存するライブラリなので、toxで複数のPythonバージョンとDjangoバージョンの組合せでテストコードを実行するように設定しています。 tox.iniの設定が冗長だなあと感じていたのですが、envlistのマトリックスをシ…