概要と読みどころについて解説します。Django」(紙の本)はおかげさまで完売いたしました。出版することになりました。電子版と紙の本を予定しています。仕事の現場で6年ほど使っている私が、日本語で書かれた書籍が少なくてずっと困っていたので自ら書きました。表紙はこんな感じです。電車の中でも読めるようなものがよいと思い、派手さは極力抑えるようにしました。いわゆる「技術系同人誌」というジャンルの自費出版本になりますが、いたって真面目な技術解説書です。表紙も含めて基本的に一人で作り上げました。界隈から有志の方二人と、同僚二人に協力していただきました。内容は?目次はこのようになっています(クリックで拡大します)。この本は、サンプルプロジェクトを実装ながら(読者によっては実際に手を動かしながら)技術要素を順番に説明していくような、いわゆるチュートリアル本ではありません。全体像から構成要素の詳細まで、基本動作やハマりやすいポイントについて幅広く解説した本です。意外と簡単だな」と感じていただけることを目指して、基礎から詳しく丁寧に解説しています。ラクティスについても紹介しています。ベストプラクティスを学びたいと考えている中級者の方を想定しています。一度挫折したことがある方にピッタリな再入門書にもなっていると思います。Webアプリケーション開発の経験がまるっきり無いという方には多少難しい内容になっているかもしれません。(強気で刷った)300部が3時間ほどで完売してしまいました。当日は初参加の上に予想をはるかに超えた売れ行きにてんてこ舞いで、全く余裕がありませんでした。本の感想を勝手にピックアップさせていただきました。おおむね好評のようで、ほっとしました。技術書典で買って今半分ぐらいまで読んだんだけど、これはヤバイ。ヤバいものを見つけたという感じ。クオリティがあまりにもあまりにも高すぎる。Django情報量がなぁ...とか思ってたけどこれあれば全く問題ないと思わせるほど。さん1年前に欲しかった......と思いながら見本を見て購入。Djangoって本当にいいフレームワークだと思うんですよ。いつも雰囲気で使ってるMiddlewareや、あとわたしの好きなFormオブジェクトの解説も充実。2018年4月22日この本は昨日買って読んだけど良かった。これとアイスクリームの本を読めばDjangoで実用的なものが作れるかと思う。購入したDjango本、ものすごいクオリティ。本格的に書き始めたのが2月下旬だと。https://t.co/bXHkd2SD3E今読み進めているけど技術書典4において1,2を争うレベルで有用な戦利品だった。本を買っていただいた上に感想までブログに書いてくださった心優しい方も何人かいらっしゃいました。本当にありがとうございます。こちらも勝手に貼り付けさせていただきます。用意して感想を聞かせていただいたのですが(現在も絶賛募集しているので是非とも感想をお願いします)、その結果もおおむね良かったようです。対応したものもありますが)今後の改訂や補足ブログのネタにさせていただきたいと思います。読みどころ章ごとの簡単な解説をしながら、本書の読みどころについて書いていきます。まとめ短く書きたかったのですが、勢い余って長くなってしまった序章。今年5月に開催されるなど、本格的な盛り上がりを感じます。LTS」、趣味で使うなら「2系」を使えばよいと考えています。サポートが切られたことを除いて)。これについては追々、補足のブロク記事で解説したいと思います。追記)補講記事をアップしました。3.6系でも特に問題ないはずです。改訂するのであれば、3.6系を前提に書きたいと考えています。まとめ何事にもまずは全体像から掴んだ方が理解しやすいので、大枠から解説。フォーム、モデルなどの構成要素(コンポーネント)がどのように連携しながら動作しているのかを、図を見ながらざっくりと理解することができます。コマンドを使って自動生成されたファイルの説明と、分かりやすいプロジェクト構成についてです。URLとビュー関数をマッピングしている「URLconf」(URL設定)についての解説です。1系の書き方も継続して使える)ので、そちらは補足ブログで追記したいと考えています。まとめ本書では、関数ベースのビューについてはほとんど説明しておらず、クラスベースビューを中心に解説しています。クラスベースビューを使う理由やメリットについてももちろん書いていますし、デメリットである継承の複雑さやオーバーライドできるメソッドや変数がどうなっているかについては、解決のヒントを提示しています。ログイン・ログアウト処理は実はややこしいのですが、よく分かっていなかった人もこれを読めばだいぶスッキリすると思います。まとめ便利だけど実はいろいろとややこしい、そんなモデルを分かりやすく解説しています。最強の武器(そして最も厄介な諸刃の剣)だと考えているからです。使わないことは少ないと思いますので、モデルの仕組みを理解するのは必須でしょう。リレーションについては、基本から説明しています。ついても詳しく説明しています。文を確認する方法についても解説しています。モデルについても解説。モデルのカスタマイズ方法についても取り上げています。ついては解説していません)。数あるフィルタやテンプレートタグの中からよく使うものをピックアップして紹介しています。まとめユーザーの入力データを保持するためのフォームですが、やはりキモとなるのはバリデーションですよね。起点としてさまざまなメソッドが順番に呼ばれますが、そのややこしいバリデーションのフローを図を使って分かりやすく解説しています。ついても何とか一枚の図にまとめてみました。エラーに悩まされた方も多いであろう、CSRF対策(csrf_token)についてもこの章で解説しています。ミドルウェア、何となく使ってませんか?見逃されがちなミドルウェアですが、実は縁の下の力持ちなんですよね。いうことで、新規プロジェクト作成時にデフォルトで設定されるミドルウェアの役割や必要性などについて解説しています。ともにベストプラクティスとして解説しています。ついても言及しています。継承する書き方は非推奨にマークされているので、要注意です。書籍は、おそらくこれまで無かったと思います。まとめ実はこの章が本書の一番のウリかもしれません。評価が高かった章の一つでもあります。動かしたときに何だか分からないエラーが出たりして途方に暮れる、というのがあるのではないでしょうか。「この設定って何が正解?」「動いたけどこのままでいいんだろうか?」と悩みながら何となく使っているのではないでしょうか。サブクラスを書くべき?静的ファイルパス関連の「STATIC_URL」「STATIC_ROOT」「STATICFILES_DIRS」の違いは一体何なの?「SECRET_KEY」や「ALLOWED_HOSTS」って何に使うの?「LOGGING」は具体的にどう設定すればいいの?など疑問は尽きないと思います。この章ではこれらの疑問に全てお答えしています。個人開発用のものを分けるための方法や、シークレットな変数値を環境変数に分離する方法などについても解説しています。まとめマイグレーションについての説明は短め。実際の運用ではもう少しディープな理解が必要かもしれませんが、紙面の都合で割愛しました。利用する場合の注意点について書きました。こちらも割とシンプルにまとめています。Admin)が挙げられるかと思います。カスタマイズ方法など、少し詳しめに解説しています。パッケージ」について、選定のコツや私のオススメするパッケージをいくつか紹介しています。「本のオンラインショップ」をテーマに、ログイン・ログアウトまわりを中心に実装したサンプルプロジェクトです。本書で説明したことをベースにしたサンプル実装になっており、コードには日本語の説明をなるべく多く書きました。紙面の都合でコードの掲載はカットし、その代わりにソースコードのURLを載せています。6月以降販売分)ではよりシンプルな方法に修正しています。ベースにしたものに書き直しました。ローカルPCの環境を汚すことがなく、要らなくなったらすぐに環境を作り直せるので、開発や検証が容易になります。悩んでいる人向けに、この本はどういう本なのか、誰にピッタリな本なのかを解説してみました。仕事の現場で使っている人を主なターゲットにしていますが、仕事ではなく趣味で使ってるという方や、2系の情報が知りたいという方にも有益な情報がたくさん含まれているはずですので、是非ともお手にとっていただければと思います。同人誌を書いた話」というテーマで登壇しました。意外と小心者なので、テンパって噛みまくりでお聞き苦しかったかと思います。その節は大変失礼いたしました。*1:春と秋の年二回ずつ開催される、技術者による技術者のための技術系同人誌の販売イベント。今回は4回目の実施となり、参加者は6,000人を超えました。https://techbookfest.org/event/tbf04*2:技術書典4で頒布したものから少しだけ改訂した「v1.0.1」バージョンになります。*3:多忙な時期とも重なり、本当に死ぬほど疲れました。*4:しかしながら、これがベストか?については異論あると思います。複雑になった場合の本格的なプロジェクト構成について、もし続編を書くのであればこのあたりも補足してみたいと考えています。本日いよいよ「技術書典6」が開催されますね。