#!/usr/bin/env python # coding: utf-8 # Webフレームワークは、Web開発に固有の難点や繰り返しの多くを抽象化するモジュラーツールの集まりです。 # たとえば、ほとんどのWebサイトでは、データベースへの接続、URLルートの設定、ページのコンテンツの表示、セキュリティの適切な処理などの基本的な機能が必要です。 # プログラマーは何年も前から、このすべてをゼロから再作成するのではなく、PythonのDjangoとFlask、RubyのRails、JavaScriptのExpressといった多くの主要プログラミング言語すべてでWebフレームワークを作成しました。 # Djangoは、Pythonの「バッテリ内蔵」アプローチを継承し、Web開発における一般的なタスクのためのすぐに使用できるサポートを備えています。 # - ユーザ認証 # - テンプレート、ルート、ビュー # - 管理インターフェース # - 強固なセキュリティ # - 複数のデータベースバックエンドのサポート # - そしてはるかに多く # このアプローチにより、Web開発者としての仕事はずっと簡単になります。 # 標準的なWebアプリケーション機能については、Webアプリケーションをユニークにすることに焦点を当てることができます。 # 対照的に、いくつかの一般的なフレームワーク(特にPythonのFlaskとJavaScriptのExpress)は、「マイクロフレームワーク」アプローチを採用しています。 # シンプルなWebページに必要な最低限のものを提供し、サードパーティのパッケージをインストールして設定して、基本的なWebサイト機能を複製するために開発者に任せます。 # このアプローチは、開発者に柔軟性を提供しますが、間違いの可能性も増します。 # 2018年現在、Djangoは13年間にわたり積極的に開発されており、ソフトウェア時代には珍しいベテランになっています。 # 何百万人ものプログラマーがDjangoを使ってWebサイトを構築しています。 # そして、これは確かに良いことです。 # Web開発は難しい。素晴らしい開発者の大きなコミュニティがすでにこれらの問題を解決しているときに、同じコードや間違いを繰り返すことは理にかなっていません。 # 同時に、Djangoは引き続き積極的に開発されており、毎年のリリース予定があります。 # Djangoコミュニティは、常に新しい機能とセキュリティの向上を追加しています。 # あなたが最初からウェブサイトを構築しているなら、Djangoは素晴らしい選択です。 # 第1章では、ローカル開発環境の設定方法を適切に説明することから始めます。 # 本書では、Django(2.0)、Python(3.7)、およびPipenvの最新バージョンを使用して仮想環境を管理しています。また、コマンドラインを紹介し、最新のテキストエディタを使用する方法についても説明します。 # # 第2章では、新しいDjangoプロジェクトを設定する方法を示した最小のHello、Worldアプリケーションである最初のプロジェクトを構築します。優れたソフトウェアの習慣を確立することが重要なので、gitで作業を保存し、Bitbucketのリモートコードリポジトリにコピーをアップロードします。 # # 第3章では、テンプレートとクラスベースのビューを導入するPagesアプリケーションを作成、テスト、およびデプロイします。テンプレートは、DjangoがHTMLとCSSでDRY(Do not Repeat Yourself)開発をどのように可能にするのか、クラスベースのビューでは最小限のコードでDjangoのコア機能を使用し拡張する必要があります。彼らはあなたがすぐに見るように素晴らしいです。私たちは最初のテストを追加し、この本で使用する無料の層を持つHerokuに展開します。 Herokuのようなプラットフォームとしてのサービスプロバイダーを使用することは、時間のかかる厄介なプロセスから数回のマウスクリックを必要とするプロセスに変革をもたらします。 # # 第4章では、最初のデータベースバックアッププロジェクトであるメッセージボードアプリケーションを構築します。 Djangoは強力なORMを提供しており、データベーステーブルのための簡潔なPythonを書くことができます。私たちはデータと対話するグラフィカルな方法を提供し、Wordpressに似たコンテンツ管理システム(CMS)として使用することができるビルトイン管理アプリケーションを探求します。もちろん、すべてのコードのテストを書いて、Bitbucketにリモートコピーを保存し、Herokuにデプロイします。 # # 最後に5章から7章で、DjangoでCRUD(Create-Read-Update-Delete)機能を実行する方法を示す堅牢なブログアプリケーションである、最終的なプロジェクトを準備します。 Djangoのジェネリックなクラスベースのビューは、実際のコードを少しだけ書く必要があることを意味します。次に、フォームを追加し、Djangoに組み込まれたユーザ認証システム(ログイン、ログアウト、サインアップ)を統合します。 # # 第8章では、新聞サイトを開始し、チュートリアルではほとんど扱われないDjangoのベストプラクティスであるカスタムユーザーモデルの概念を紹介します。新しいプロジェクトはすべてカスタムユーザーモデルを使用する必要があります。この章では、その方法を学びます。 # # 第9章ではユーザー認証 # # 第10章ではスタイリングのためのブートストラップ # # 第11章と第12章ではパスワードのリセットと電子メールによる変更を実装しています。 # # 第13章から第15章では、適切な権限と権限とともに、記事やコメントをプロジェクトに追加します。我々は、成長するデータを表示するように管理者をカスタマイズするためのいくつかのトリックを学んでいます。結論は、本で紹介された主要概念の概要と、さらなる学習のための推奨リソースのリストを提供します。 # # あなたは読む章を選択して選ぶことができますが、その本の構造は非常に慎重です。各アプリ/チャプターは新しいコンセプトを紹介し、過去の教えを補強します。あなたが先に飛び越えることを熱望していても、それを順番に読むことを強くお勧めします。 # # 後の章では、前の章と同じ深さの以前の資料については触れません。この本の最後には、Djangoがどのように動作するか、自分でアプリケーションを構築する能力、中間的な高度なDjangoテクニックを学ぶための追加リソースを十分に活用するために必要なバックグラウンドについての理解があります。 # 結論() # # Djangoは、最小限のコードで現代的で堅牢なWebアプリケーションを開発したい開発者にとって、優れた選択肢です。活発な開発の下で普及しており、世界最大のウェブサイトで徹底的にバトルテストを受けています。次の章では、Django開発のためのコンピュータの設定方法を学びます。 # この本のGithub # https://github.com/wsvincent/djangoforbeginners # In[ ]: # In[ ]: