先日書いた記事で必要なことを、さくっとできるようにライブラリにしてPyPiに登録してみました。
続きを読むDjango Channelsで実装した認証付きWebsocketにPythonで接続する
最近はDjango上でWebsocketを使えるようにするChannelsを仕事でひたすら触っています。さて、Channelsで実装したWebSocketサーバに対して負荷テストをしたいと思ったときには、ログイン処理について考えなければいけません。
ほとんどの場合、ChannelsではDjangoのsessionオブジェクトを使うことができるので、大抵の場合はDjangoでログインしているかを接続受け入れの条件になっています。これを踏まえると、ログイン処理とWebsocketでのテスト処理を用意しなければいけません。これを実現するために少し試行錯誤したのでまとめておきます。
続きを読むDjangoでモデルにauto_nowを指定しても更新されない事がある
Djangoのモデルの時刻系のField(DateTimeField
など)にはauto_now
という属性があります。これをauto_now=True
とするとモデルを更新するたびにその時点での時刻を自動で設定してくれるので、更新時刻などを保持しておきたい場合に便利です。
class AutoAddTest(models.Model): data = models.CharField(max_length=255) # モデルの更新ごとに変更される updated_at = models.DateTimeField(auto_now=True) def __str__(self): return '{} at {}'.format(self.data, self.updated_at)
しかし、更新方法によってはauto_now=True
が動作しないケースがあり、ハマったのでそれを備忘録として残しておきます。
DjangoのFileFieldのバックエンドを動的に切り替えたい(S3BotoStorageの例)
Djangoで実行されたクエリを確認したい(`connection.queries`)
connection.queries
で発行されたSQLを確認できるというDjangoの小ネタです。
Django Congress 2018 で登壇してきました
かなり更新をサボってしまっていました。2018/05/19に開催されたDjangoCongressにスピーカとして参加してきましたので参加記録をまとめておきます。
続きを読むDjango Channels + Vue.js でWebSocketをつかってTrelloみたいなカンバンを作ってみた
ChannelsとVue.jsの練習がてらカンバンを実装してみました。割りとカンバンのUIの実装記事はあるのですが、サーバ側までセットになったものが少なかったのでがんばりました。
リポジトリのコードが全てではありますが、一応メモ程度に内容を残しておきます。
続きを読む