こんにちは。 DjangoCongress JP 2025を主催したのでそのお話しです。個人的にすごいなと思うことがたくさん起きたので、それを書きたいと思います。僕としても学びが多かったので、残しておきたいです。 今回のこの記事は僕が主催をしたときにあったことや裏側で起きたことなどを主に共有したいと思います。各トークについてはぜひ配信の動画を見てください。 オンライン開催、海外からの登壇、同時翻訳 イベントとして今回の目玉としてはオンライン開催で、同時翻訳があるということじゃないでしょうか。 平たく言うとこれが最高で、日本、海外の方が7人ずつ登壇ということでグローバルなイベントにできました。 Djangoの本家であるDSF(DjangoSoftwareFoundation)の方にも登壇していただいて、今までにない新しい繋がりも生まれました。また同時翻訳のおかげで海外の方も日本語のトークを見
This document describes the current stable version of Celery (5.5). For development docs, go here. Note Previous versions of Celery required a separate library to work with Django, but since 3.1 this is no longer the case. Django is supported out of the box now so this document only contains a basic way to integrate Celery and Django. You’ll use the same API as non-Django users so you’re recommend
Gyazoの広告が鬱陶しかったり削除できないのが気に入らないので, DjangoでGyazoのサーバを作っちゃいました. → Nyazo ソースコードはこちらからどうぞ : github.com 仕様とか クライアント もともとGyazoのクライアントはgithubで公開されていたので, それの中にあるscriptというファイルをちょこっと弄るだけでした. オリジナルのGyazoクライアントは, ~/Library/Gyazo/id の中にある文字列で認証を行なっているのですが, 流石にセキュリティ的にまずいだろうと思い, 共通鍵暗号方式に. クライアントは, 鍵をソルトとして画像のバイナリからハッシュ値を算出しサーバに送信. サーバ側も共通の鍵でハッシュ値を計算して一致してたらPOSTを受け入れるという感じです. クライアントその2 画像を右クリックからサーバにPOSTできるChrome
"mod_python 終了のお知らせ" を受け、もともとリソース不足だった既存の Django アプリケーション郡のサーバをリプレイスすることにしました。リプレイス要件↓ パフォーマンスが高いのにしたい アプリケーションの変更は必要最小限にしたい URL 類は既存のアプリケーションを引継ぐ: 複数プロジェクトをサブディレクトリーで運用していて、 "django.root" で複数プロジェクトを切り分けている 環境設定について これは apache - mod_wsgi が簡単すぎます。 nginx - fastcgi nginx - fastcgi 構成の場合は、init.d への登録、 daemontools を利用 (弊社は mod_python 以外はこれ)。 nginx の設定 /etc/nginx/fastcgi_params fastcgi_read_timeout 180;
先日django-tastypieで作ったAPIにBasic認証をかける方法を試してみました。 今日は自動的に生成されるApiKeyを使うApiKey認証というのを試してみたいと思います。 Basic認証ではユーザーのパスワードが必要ですが、それが好ましくない場合はこっちを使うみたいです。 ApiKey認証をかけるにはResourceのMetaクラスにauthentication = ApiKeyAuthentication()を記述します resources.py from tastypie.authentication import BasicAuthentication from tastypie.resources import ModelResource from tastypie.authorization import Authorization from app.model
django-tastypieを使えば、Djangoでモデル定義されたデータへアクセスするAPIを簡単に作成することができます。できるみたい。 どのくらい簡単か試してみました。 インストール pip install django-tastypie0.9.11が入りました。 サンプル とりあえずモデル models.py from django.db import models class Book(models.Model): title = models.CharField(max_length=255) pub_date = models.DateTimeField(auto_now_add=True) モデルに対してModelResourceクラスが必要です resources.py from tastypie.resources import ModelResource from
django-tastypieのSessionAuthenticationはDjangoのデフォルトのセッション機能を使ってログインしているかどうかをチェックします。 具体的にはcookieにsessionidが設定されていること(ログインしている)と、あとはcsrftokenが必要なようです。 試してみました resources.py from tastypie.authentication import SessionAuthentication from tastypie.resources import ModelResource from tastypie.authorization import Authorization from app.models import Book class BookResource(ModelResource): class Meta: que
今回はPythonのWEBアプリケーションフレームワークであるDjangoでWebSocket通信を行う方法を紹介します。 はじめに 事の発端ですが、Arduinoなどのマイコンボードに接続したセンサの値をサーバーに集約してごにょごにょしたいな〜と以前から考えていました。 こういった場合、個人ユースでよく用いられるのが、CGIにPOSTやGETでデータを送りつける方法だと思います。しかし、わずか数バイトのデータを送るにヘッダや何やらくっつけたりしていたら、本来送りたい情報よりも付属のデータの方が多くなってしまいます。また、逆にサーバからマイコンボードなどにデータを送りたい場合、マイコン側からポーリングするといった方法を取らなくてはいけません。AjaxやCometの様な手法でも従来のWEBサーバの技術を応用して上記のようなことを実現しようとすると同様の問題にぶち当たると思います。もちろん一か
BPで話題になっているdjango-debug-toolbar. 簡単にSQLやHTTPリクエストの情報を見れるようになるとのこと。 早速インスコした http://robhudson.github.com/django-debug-toolbar/ ちなみに mac os X 10.5.8 に入れるだけ入れてみた。 インストール eazy_install $ sudo easy_install-2.5 django-debug-toolbar パス設定 自分の環境ではeasy_installしてもパスには追加されなかった(デフォでは追加されない?)ので、 PAYTHONPATHにdjango-debug-toolbarのディレクトリを追加 $ vi ~/.zshrc --- # Python export PYTHONPATH=/opt/local/lib/python2.5/site-
先日DjangoのFormsetを使ったサンプルを作ってみましたが、もう少し実用的なものを作ってみようと思い、デジションテーブルをエクセルファイルでダウンロードできるサイトを作ってみました。 Decision Table Creator http://decisiontable.herokuapp.com/ デシジョンテーブルについては以前ちょろっと書きました。 開発現場で重宝した本 - はじめて学ぶソフトウェアのテスト技法 http://d.hatena.ne.jp/yuheiomori0718/20120719/1342703439 例えば条件1に「既婚か?」、選択肢として「YES」、「NO」を入力。 条件2に「優秀な学生か?」、選択肢として「YES」、「NO」を入力。 アクションとして「割引(ドル)」を入力すると はじめて学ぶソフトウェアの技法のP53で紹介されているデシジョンテーブ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く