Djangoプロジェクトの開始

Djangoプロジェクトの開始

Djangoは、迅速な開発とクリーンで実用的な設計を促進する高レベルのPythonWebフレームワークです。

このチュートリアルでは、質問“How do I setup a Django (1.5, 1.6, 1.7, or 1.8) project from scratch?”に回答します。つまり、Djangoをインストールする方法と、Djangoプロジェクト構造を設定する方法を学習します。

このチュートリアルを最大限に活用する方法は次のとおりです。

  1. 「はじめに」および「セットアップ」セクションをお読みください。

  2. 次に、Django 1.5、1.6、1.7、1.8を選択してDjangoプロジェクトをセットアップします。

  3. プロジェクトの初期設定が完了したら、「アプリの作成」セクションに移動して、簡単で便利なアプリを設定します。

  4. 次に、Djangoプロジェクトのクイックスタートガイドの概要ワークフローを確認してください。

Free Bonus:Click here to get access to a free Django Learning Resources Guide (PDF)は、Python + DjangoWebアプリケーションを構築するときに避けるべきヒントとコツおよび一般的な落とし穴を示しています。

Update:ドメインrealdjango.comがこの投稿を指しているので、簡単に見つけることができます。

前書き

このチュートリアルは、“How do I setup a Django Project from scratch?”という質問に答えます。これを読んでいるので、Djangoが迅速なWeb開発用に構築されたPython Webフレームワークであることを知っていると思います(エラー、希望)。 セットアップを行い、Djangoの基本的なインストール手順と必要な依存関係のほか、ASAPの開発を開始するためのいくつかの追加のライブラリ/拡張機能について詳しく説明します。

また、プロジェクト構造が設定されたらすぐに使用できる基本的なワークフローについても説明します。

最後に、次のビデオを確認してください。

これらのビデオはDjango 1.5固有のものですが、Django 1.6、1.7、および1.8の基本的なワークフローも理解するのに役立ちます。

チュートリアルの要件

Pythonの経験があり、基本的なUnix bashコマンドを知っている必要があります。 これまでコマンドラインを使用したことがない場合は、pwdcdlsrm、およびmkdirのコマンドをよく理解してください。

簡単にするために、すべての例でUnixスタイルのプロンプトを使用しています。

$ python manage.py runserver

(ドル記号はコマンドの一部ではありません。)

同等のWindows:

C:\> python manage.py runserver

セットアップ

基本的なDjango開発環境に必要なもの:

  1. Python 2.7.xまたは3.4.x

  2. easy_installおよびPip

  3. Git

  4. 美徳

  5. ジャンゴ

  6. データベース(SQLite、MySQL、PostgreSQL、MongoDBなど)

  7. 南(1.7より前のDjangoバージョンの場合)

  8. テキストエディター(Sublime、vim、Komodo、gedit)

Note:このチュートリアルはPythonバージョン2.7.8を利用しています。

Python

Unix環境にはPythonがプリインストールされています。 Pythonのバージョンを確認するには、次のコマンドを実行します:

$ python -V
Python 2.7.8
$ python3 -V
Python 3.4.2

既に2.7.xバージョンを使用している場合は、次の手順に進みます。 そうでない場合は、downloadを実行し、オペレーティングシステムに固有の最新の2.7.xバージョンをインストールします。

easy_installおよびpip

easy_installとpipはどちらもPythonパッケージマネージャーであり、Pythonパッケージ(およびパッケージの依存関係)のインストールとアップグレードをmuchで簡単に行うことができます。

easy_installをダウンロードするには、Python Package Index(PyPI)に移動します。 easy_installを含むsetuptoolsをダウンロードする必要があります。 パッケージegg(.egg)をダウンロードし、ファイルから直接インストールします。

一方、Pipはeasy_installに依存するラッパーです。そのため、pipをインストールする前に、easy_installのセットアップと作業が必要です。 easy_installがセットアップされたら、次のコマンドを実行してpipをインストールします。

$ easy_install pip

Git

version controlの場合、gitを使用します。 gitが既にインストールされている場合は、次のコマンドで現在のバージョンを確認できます。

$ git --version
git version 2.3.0

1.7.xを超えるバージョンがインストールされていない場合は、最新バージョンをdownloadしてください。

MySQL

SQLiteにはPythonがプリインストールされています。ほとんどのチュートリアルではSQLiteを使用します。少しプッシュして、代わりにMySQLを使用してみましょう。

まず、hereからMySQLをインストールします。

次に、サーバーを起動し、新しいデータベースとユーザーをセットアップします。

$ mysql.server start
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
mysql> CREATE DATABASE django_db;
Query OK, 1 row affected (0.01 sec)
mysql>
mysql> quit
Bye

美徳

自己完結型の開発環境(「サンドボックス」とも呼ばれます)を作成するために、Pythonプロジェクトにvirtualenv(仮想環境)を使用するのが一般的な方法です。 virtualenvの目標は、異なるバージョンのライブラリ/パッケージが互いに干渉しないようにすることです。

virtualenvは、コンピューター内の完全に分離されたコンテナーと考え​​てください。ここでは、Pythonの任意のバージョンを使用し、ライブラリー/パッケージをインストールできます。コンテナーの外部には影響しません。 それはまるであなたの家の中にある隔離された防音室のようなもので、あなたが望むように大声で叫ぶことができ、あなたが望むものは何でも、その部屋の外の誰もそれを聞くことができません。

次のコマンドでvirtualenvをインストールします。

$ pip install virtualenv

ジャンゴ1.5

2013年2月26日に最初にリリースされた最も注目すべき新機能は次のとおりです。

  1. Configurable User Model:Djangoの「ユーザー」の定義を使用する代わりに、独自のユーザーモデルを作成して、ソーシャルプロファイルへのリンク、生年月日、お気に入りの色などのカスタムフィールドを作成できるようになりました。

  2. Python 3 Support:サポートはまだ「実験的」であるため、Djangoはまだ本番環境でPython3を使用しないことを提案しています。 ただし、この機能はPythonコミュニティ全体にとって大きなものであり、大幅に改善されたPython 3への3.気楼により大きな圧力をかけるのに役立ちます。

完全なリリースノートを読みたいですか? Djangohereからの公式の変更を確認してください。

最新のリリースは2015年1月2日に行われました:v1.5.12

このチュートリアルに付随するビデオをチェックしてください:

Djangoインストール

開発構造をセットアップします。

$ mkdir django15_project
$ cd django15_project
$ virtualenv env
$ source env/bin/activate

プロンプトの前に(env)(env)$が表示され、「env」virtualenv内で実行していることを示しているはずです。

virtualenvを終了するには、次のコマンドを入力します。

$ deactivate

その後、再び作業する準備ができたら、再度有効にします。

Djangoをインストールしましょう。

$ pip install django==1.5.12

次のコマンドを実行して、バージョンを確認できます。

>>>

$ python
>>> import django
>>> django.get_version()
'1.5.12'

プロジェクトのセットアップ

Djangoプロジェクトをセットアップする

$ django-admin.py startproject my_django15_project

これにより、基本的なDjangoディレクトリと構造を持つ「my_django15_project」という新しいディレクトリが作成されます。

├── manage.py
└── my_django15_project
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

バージョン管理

開発を開始する前に、プロジェクトをバージョン管理下に置きます。 まず、「django15_project」ディレクトリ内に.gitignoreという新しいファイルを追加します。これは、不要なファイルがgitリポジトリに追加されないようにするために使用されます。

ファイルに次を追加します。

env
*.DS_Store
*.pyc
__pycache__

ここで、新しいGitリポジトリを初期化(または作成)し、変更をステージングに追加してからローカルリポジトリに追加します。

$ git init
$ git add -A
$ git commit -am "initial commit"

BitBucketまたはGitHub(強く推奨)を使用している場合、ファイルを中央リポジトリにプッシュします。

データベース設定

最初に、Python用のデータベースコネクタであるMySQL-pythonをインストールします。

$ pip install MySQL-python

「my_django15_project」ディレクトリ内のsettings.pyファイルを編集して、前に設定したデータベースに関する次の情報を追加します。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django_db',
        'USER': 'root',
        'PASSWORD': 'your_password',
    }
}

データベーステーブルを作成し、スーパーユーザーを設定します。

$ cd my_django15_project
$ python manage.py syncdb

開発サーバーを起動します。

$ python manage.py runserver

Djangoとデータベースが正しくセットアップされている場合、次の出力が表示されます。

Validating models...

0 errors found
September 7, 2014 - 23:36:02
Django version 1.5, using settings 'my_django15_project.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

ブラウザをhttp://127.0.0.1:8000に向けると、Djangoが「機能しました!」と表示されます。ページ。

ターミナルに戻り、CONTROL-Cを押してサーバーを強制終了します。

Southは、データベーステーブルへの変更を管理するために使用されます。 たとえば、アプリケーションが成長し、特定のテーブルにフィールドを追加する必要がある場合、Southを使用した移行によってデータベースに簡単に変更を加えることができます。 それは人生muchを楽にします。

南のインストール:

$ pip install south

ピップフリーズ

すべてのライブラリがインストールされたので、次のコマンドを使用して、インストールされたライブラリのレコードを「my_django15_project」ディレクトリ内に作成します。

$ pip freeze > requirements.txt

このcommandは、プロジェクトを最初から再作成する必要があり、インストールする必要のある正確なライブラリ/バージョンを知る必要がある場合に非常に役立ちます。

新しい変更をGitにコミットします。

Djangoアプリをセットアップする

新しいアプリを作成します。

$ python manage.py startapp myapp

プロジェクト構造は次のようになります。

├── manage.py
├── my_django15_project
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── myapp
    ├── __init__.py
    ├── models.py
    ├── tests.py
    └── views.py

settings.pyファイルのINSTALLED_APPSを更新します。

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.admin',
    'myapp',
    'south',
)

ここでは、管理者'django.contrib.admin'を有効にし、アプリ'myapp''south'を追加しました。

urls.pyを開き、次の3行のコメントを解除します。

from django.contrib import admin
admin.autodiscover()
url(r'^admin/', include(admin.site.urls)),

データベースを再度同期します。

$ python manage.py syncdb

Southでデータベース移行ファイルを作成します。

$ python manage.py schemamigration myapp --initial

データベースの変更を移行します。

$ python manage.py migrate myapp

サーバー(python manage.py runserver)を起動してから、http://127.0.0.1:8000/adminに移動します。 スーパーユーザーのユーザー名とパスワードを入力して、管理ページにログインします。

Gitにコミットします。 例えば:

$ git add -A
$ git commit -am "updated settings, created app, added south, enabled django admin"

正しい方法でgitを使用する

NOTE:このセクションはかなり高度で、完全にオプションです。 Djangoを初めてセットアップする場合は、このセクションをスキップできます。

GitHubまたはBitbucketを中央リポジトリとして使用していない場合は、開発用にローカルリポジトリの別のブランチを作成する必要があります。

まず、「django15_project」ディレクトリ内に「dev」という名前の新しいディレクトリを作成し、新しく作成したディレクトリに移動してから、Djangoプロジェクト全体を複製(コピー)します。

$ git clone /path/to/your/project/

例:/Users/michaelherman/desktop/django15_project

このコマンドは、すべてのコミットとブランチを含むレポジトリの正確なコピーを作成します。 プロジェクトの主要な変更ごとに個別のブランチを作成して、常にこのディレクトリから開発します。

$ git branch 

そのブランチへの次のスイッチ:

$ git checkout 

このコマンドで利用可能なブランチをいつでも確認できます:

$ git branch

開発が完了したら、変更をコミットします。

$ git add -A
$ git commit -am "some message"

次に、変更をmasterブランチにマージします。

$ git checkout master
$ git merge 

いずれかのサービスを使用する場合、GitHubまたはBitbucketへの変更をプッシュできます。 最後に、メインの本番フォルダーに戻り、変更をプルします。

$ git pull

例:

(env)$ cd dev
(env)$ cd django15_project
(env)$ git branch 06212013
(env)$ git checkout 06212013
(env)$ git add -A
(env)$ git commit -am "description of changes made"
(env)$ git checkout master
(env)$ git merge 06212013
(env)$ cd ..
(env)$ git pull /Users/michaelherman/desktop/django15_project/dev/django15_project

ワークフロー

アプリのセットアップが完了したら、アプリに変更を加えるたびに、次のいずれかのシンプルなワークフローに従ってください。

基本:

  1. プロジェクトに移動します

  2. virtualenvを有効にする

  3. 開発する

  4. 変更をコミット

  5. 展開する

  6. virtualenvを非アクティブ化する

上級者向け

  1. プロジェクトに移動します

  2. virtualenvを有効にする

  3. 新しいgitブランチを作成してチェックアウトする

  4. 開発する

  5. 変更をコミット

  6. 新しいブランチをマスターブランチにマージします

  7. 変更を本番フォルダーにプルする

  8. 展開する

  9. virtualenvを非アクティブ化する

乾杯! 質問は? 提案?

基本的なappを作成しましょう!

Django 1.6

2013年11月6日に最初にリリースされた最も注目すべき新機能は次のとおりです。

  1. Python 3 Support:Python 3のサポートが公式になり、制限なしで本番環境で実行できるようになりました。

  2. Improved Database Transaction Management:APIはよりスリムでクリーン、そしてシンプルであり、ロールバックとエラー処理がはるかに簡単になります。

  3. 新しいテストランナー

  4. 永続的なデータベース接続

完全なリリースノートを読みたいですか? Djangohereからの公式の変更を確認してください。

最新のリリースは2015年3月18日に行われました:v1.6.11

Djangoインストール

開発構造をセットアップします。

$ mkdir django16_project
$ cd django16_project
$ virtualenv env
$ source env/bin/activate

プロンプトの前に(env)(env)$が表示され、「env」virtualenv内で実行していることを示しているはずです。

virtualenvを終了するには、次のコマンドを入力します。

$ deactivate

その後、再び作業する準備ができたら、再度有効にします。

virtualenvをアクティブにして、PjanでDjangoをインストールします。

$ pip install django==1.6.11

次のコマンドを実行して、バージョンを確認できます。

>>>

$ python
>>> import django
>>> django.get_version()
'1.6.11'

プロジェクトのセットアップ

Djangoプロジェクトをセットアップする

$ django-admin.py startproject my_django16_project

これにより、基本的なDjangoディレクトリと構造を持つ「my_django16_project」という新しいディレクトリが作成されます。

├── manage.py
└── my_django16_project
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

バージョン管理

開発を開始する前に、プロジェクトをバージョン管理下に置きます。 まず、「django16_project」ディレクトリ内に.gitignoreファイルを追加します。これにより、不要なファイルがgitリポジトリに追加されるのを防ぎます。

ファイルに次を追加します。

env
*.DS_Store
*.pyc
__pycache__

次に、新しいGitリポジトリを初期化(または作成)し、変更をステージングに追加してから、リポジトリに追加します。

$ git init
$ git add -A
$ git commit -am "initial"

GitHubを使用する場合は、ファイルも中央リポジトリにプッシュします。

データベース設定

最初に、PythonがMySQLと通信できるようにMySQL-pythonをインストールします。

$ pip install MySQL-python

「my_django16_project」ディレクトリ内のsettings.pyファイルを編集します。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django_db',
        'USER': 'root',
        'PASSWORD': 'your_password',
    }
}

データベーステーブルを作成し、スーパーユーザーを設定します。

$ cd my
$ python manage.py syncdb

開発サーバーを起動します。

$ cd my_django16_project
$ python manage.py runserver

ここまでで問題がなければ、次の出力が表示されます。

Validating models...

0 errors found
September 7, 2014 - 23:36:02
Django version 1.6, using settings 'my_django16_project.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

http://127.0.0.1:8000に移動すると、おなじみの水色の「機能しました!」が表示されます。ページ。

ターミナルでCONTROL-Cを押してサーバーを強制終了します。

Southは、データベースの移行を処理するために使用されます。たとえば、データベーススキーマを変更します。

南のインストール:

$ pip install south

ピップフリーズ

依存関係がインストールされたら、次のコマンドを使用して、「my_django16_project」ディレクトリ内にそれらの後続のバージョンとともにそれらのレコードを作成します。

$ pip freeze > requirements.txt

このcommandは、プロジェクトを最初から再作成する必要がある場合に役立ちます。 pip install -r requirements.txtを実行するだけで、プロジェクトのすべての依存関係をインストールできます。

新しい変更をGitにコミットします。

Djangoアプリをセットアップする

新しいアプリを作成します。

$ python manage.py startapp myapp

プロジェクト構造は次のようになります。

├── manage.py
├── my_django16_project
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── myapp
    ├── __init__.py
    ├── admin.py
    ├── models.py
    ├── tests.py
    └── views.py

settings.pyファイルのINSTALLED_APPSを更新して、Southと新しいアプリを含めます。

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.admin',
    'myapp',
    'south',
)

これで、syncdbを実行するとすぐに、Djangoはsouthmyappの両方を認識します。

urls.pyを開き、次の3行のコメントを解除します。

from django.contrib import admin
admin.autodiscover()
url(r'^admin/', include(admin.site.urls)),

データベースを再度同期します。

$ python manage.py syncdb

Southでデータベース移行ファイルを作成します。

$ python manage.py schemamigration myapp --initial

データベースの変更を移行します。

$ python manage.py migrate myapp

サーバー(python manage.py runserver)を起動してから、http://127.0.0.1:8000/adminに移動します。 スーパーユーザーのユーザー名とパスワードを入力して、管理ページにログインします。 これは、すべてが機能していることを確認するための単なる健全性チェックです。

Gitにコミットします。 例えば:

$ git add -A
$ git commit -am "updated settings, created app, added south, enabled django admin, boom"

準備完了。 基本的なappを作成しましょう!

ジャンゴ1.7

2014年9月2日に最初にリリースされた最も注目すべき新機能は次のとおりです。

  1. Database Migrations:Djangoには、Southに基づくデータベーススキーマの変更を行うための組み込みサポートがあります。 これは大きい!

  2. プロジェクトを検証およびチェックするための改善されたsystemチェックツール

  3. Djangoがアプリケーションを識別してロードする方法のリファクタリング

完全なリリースノートを読みたいですか? Djangohereからの公式の変更を確認してください。

最新のリリースは2015年5月1日に行われました:v1.7.8

Djangoインストール

開発構造をセットアップします。

$ mkdir django17_project
$ cd django17_project
$ virtualenv env
$ source env/bin/activate

プロンプトの前に(env)が表示され、virtualenvがアクティブ化されていることを示します。

virtualenvを無効にするには:

$ deactivate

その後、再び開発を開始する準備ができたら、再度有効にします。

virtualenvをアクティブにして、PjanでDjangoをインストールします。

$ pip install django==1.7.8

次のコマンドを実行して、バージョンを確認できます。

>>>

$ python
>>> import django
>>> django.get_version()
'1.7.8'
>>>

プロジェクトのセットアップ

Djangoプロジェクトをセットアップする

$ django-admin.py startproject my_django17_project

これにより、基本的なDjangoディレクトリと構造を持つ「my_django17_project」という新しいディレクトリが作成されます。

├── manage.py
└── my_django17_project
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

バージョン管理

開発を開始する前に、プロジェクトをバージョン管理下に置きます。 まず、「django17_project」ディレクトリ内に.gitignoreファイルを追加します。これにより、不要なファイルがgitリポジトリに追加されるのを防ぎます。

ファイルに次を追加します。

env
*.DS_Store
*.pyc
__pycache__

次に、新しいGitリポジトリを初期化(または作成)し、変更をステージングに追加してから、リポジトリに追加します。

$ git init
$ git add -A
$ git commit -am "initial"

GitHubを使用する場合は、ファイルも中央リポジトリにプッシュします。

データベース設定

最初に、PythonがMySQLと通信できるようにMySQL-pythonをインストールします。

$ pip install MySQL-python

「my_django17_project」ディレクトリ内のsettings.pyを編集します。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django_db',
        'USER': 'root',
        'PASSWORD': 'your_password',
    }
}

データベーステーブルを作成し、スーパーユーザーを設定します。

$ cd my_django17_project
$ python manage.py migrate
$ python manage.py createsuperuser

開発サーバーを起動します。

$ python manage.py runserver

ここまでで問題がなければ、次の出力が表示されます。

Performing system checks...

System check identified no issues (0 silenced).
September 07, 2014 - 19:51:01
Django version 1.7, using settings 'my_django17_project.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

http://127.0.0.1:8000に移動すると、おなじみの水色の「機能しました!」が表示されます。ページ。

ターミナルでCONTROL-Cを押してサーバーを強制終了します。

ピップフリーズ

依存関係をインストールしたら、次のコマンドを使用して、「my_django17_project」ディレクトリ内に後続のバージョンとともにそれらのレコードを作成します。

$ pip freeze > requirements.txt

このcommandは、プロジェクトを最初から再作成する必要がある場合に役立ちます。 pip install -r requirements.txtを実行するだけで、プロジェクトのすべての依存関係をインストールできます。

新しい変更をGitにコミットします。

Djangoアプリをセットアップする

新しいアプリを作成します。

$ python manage.py startapp myapp

プロジェクト構造は次のようになります。

├── manage.py
├── my_django17_project
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── myapp
    ├── __init__.py
    ├── admin.py
    ├── migrations
    │   └── __init__.py
    ├── models.py
    ├── tests.py
    └── views.py

settings.pyのINSTALLED_APPSを更新します。

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp',
)

サーバー(python manage.py runserver)を起動してから、http://127.0.0.1:8000/adminに移動します。 スーパーユーザーのユーザー名とパスワードを入力して、管理ページにログインします。 これは、すべてが機能していることを確認するための単なる健全性チェックです。

Gitにコミットします。 例えば:

$ git add -A
$ git commit -am "updated settings, created app, boom"

準備完了。 基本的なappを作成しましょう!

ジャンゴ1.8

2015年4月1日に最初にリリースされた、最も注目すべき新機能は次のとおりです。

  1. New PostgreSQL specific functionality:これにより、新しいPostgreSQL-specific ModelFields – ArrayField、HStoreField、およびRangeフィールドが追加されました。 詳細については、ブログ投稿Fun With Django’s New Postgres Featuresを確認してください。

  2. Multiple template engines:Jinjaを使用できるようになりました!

完全なリリースノートを読みたいですか? Djangohereからの公式の変更を確認してください。

最新のリリースは2015年5月1日に行われました:v1.8.1

Djangoインストール

開発構造をセットアップします。

$ mkdir django18_project
$ cd django18_project
$ virtualenv env
$ source env/bin/activate

プロンプトの前に(env)が表示され、virtualenvがアクティブ化されていることを示します。

virtualenvを無効にするには:

$ deactivate

その後、再び開発を開始する準備ができたら、再度有効にします。

virtualenvをアクティブにして、PjanでDjangoをインストールします。

$ pip install django==1.8.1

次のコマンドを実行して、バージョンを確認できます。

>>>

$ python
>>> import django
>>> django.get_version()
'1.8.1'
>>>

プロジェクトのセットアップ

Djangoプロジェクトをセットアップする

$ django-admin.py startproject my_django18_project

これにより、基本的なDjangoディレクトリと構造を持つ「my_django18_project」という新しいディレクトリが作成されます。

├── manage.py
└── my_django17_project
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

バージョン管理

開発を開始する前に、プロジェクトをバージョン管理下に置きます。 まず、「django18_project」ディレクトリ内に.gitignoreファイルを追加します。これにより、不要なファイルがgitリポジトリに追加されるのを防ぎます。

ファイルに次を追加します。

env
*.DS_Store
*.pyc
__pycache__

次に、新しいGitリポジトリを初期化(または作成)し、変更をステージングに追加してから、リポジトリに追加します。

$ git init
$ git add -A
$ git commit -am "initial"

GitHubを使用する場合は、ファイルも中央リポジトリにプッシュします。

データベース設定

最初に、PythonがMySQLと通信できるようにMySQL-pythonをインストールします。

$ pip install MySQL-python

「my_django17_project」ディレクトリ内のsettings.pyを編集します。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django_db',
        'USER': 'root',
        'PASSWORD': 'your_password',
    }
}

データベーステーブルを作成し、スーパーユーザーを設定します。

$ cd my_django18_project
$ python manage.py migrate
$ python manage.py createsuperuser

開発サーバーを起動します。

$ python manage.py runserver

ここまでで問題がなければ、次の出力が表示されます。

Performing system checks...

System check identified no issues (0 silenced).
May 19, 2015 - 09:52:02
Django version 1.8, using settings 'my_django18_project.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

http://127.0.0.1:8000に移動すると、おなじみの水色の「機能しました!」が表示されます。ページ。

ターミナルでCONTROL-Cを押してサーバーを強制終了します。

ピップフリーズ

依存関係をインストールしたら、次のコマンドを使用して、「my_django17_project」ディレクトリ内に後続のバージョンとともにそれらのレコードを作成します。

$ pip freeze > requirements.txt

このcommandは、プロジェクトを最初から再作成する必要がある場合に役立ちます。 pip install -r requirements.txtを実行するだけで、プロジェクトのすべての依存関係をインストールできます。

新しい変更をGitにコミットします。

アプリを作成する

markdownを使用してテキストを表示する基本的なシングルページアプリを作成しましょう。

セットアップ

virtualenvをアクティブにして、次のパッケージをインストールしてマークダウンをレンダリングします。

$ pip install django-markdown-deux

要件ファイルを更新して、新しい依存関係を含めます。

$ pip freeze > requirements.txt

「markdown_deux」をsettings.pyに追加します。

INSTALLED_APPS = (

  ... snip ...

  'markdown_deux',
)

「my_django1_project” directory called “templates”, and then add the path to thesettings.py *ファイル内に新しいディレクトリを作成します。

import os
SETTINGS_DIR = os.path.dirname(__file__)
PROJECT_PATH = os.path.join(SETTINGS_DIR, os.pardir)
PROJECT_ROOT = os.path.abspath(PROJECT_PATH)
TEMPLATE_DIRS = (
    os.path.join(PROJECT_ROOT, 'templates'),
)

プロジェクト構造は次のようになります。

Django 1.5および1.6の場合:

├── manage.py
├── my_django1*_project
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── myapp
│   ├── __init__.py
│   ├── migrations
│   │   ├── 0001_initial.py
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
└── templates

または、Django 1.7の場合:

├── manage.py
├── my_django17_project
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── myapp
│   ├── __init__.py
│   ├── admin.py
│   ├── migrations
│   │   ├── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
└── templates

ビューとURL

Model-View-Controller(MVC)アーキテクチャ構造に従います。 Djangoプロジェクトは、このアーキテクチャを中心に論理的に編成されています。 ただし、Djangoのarchitectureは、ビューがコントローラーとして機能するという点でわずかに異なります。 したがって、プロジェクトは実際にはModel-Template-Viewsアーキテクチャ(MTV)で編成されます。 はい、これは紛らわしいです。

ビュー

次のコードをviews.pyファイルに追加します。

from django.shortcuts import render_to_response
from django.template import RequestContext


def index(request):
    return render_to_response('index.html')

この関数は、パラメーターrequestを受け取ります。これは、ブラウザーからページを要求しているユーザーに関する情報を持つオブジェクトです。 関数の応答は、index.htmlテンプレートを単純にレンダリングすることです。

URLs

次に、urls.pyファイルに新しいパターンを追加する必要があります。

urlpatterns = patterns(
    '',
    url(r'^admin/', include(admin.site.urls)),
    url(r'^$', 'myapp.views.index')
)

URLパターンを生成する方法の詳細については、Djangoの公式ドキュメントからviewを参照してください。

テンプレート

最後に、index.htmlテンプレートを作成する必要があります。 テンプレートディレクトリ内にindex.htmlという名前の新しいファイルを作成し、hereで見つかったコードを追加します。

サーバーを起動します。 それはどのように見えますか? いくつかのスタイルを追加しましょう。

前のコードをコードhereに置き換えます。

もっといいですか?

結論

必要に応じてスタイルとコンテンツを追加します。 次に、ワークフローセクションに戻って、開発プロセスを完了します。 ヘルプが必要な場合は、Real Pythonを購入してください。 または、とにかくこのオープンソースプロジェクトのサポートに役立ててください。 ありがとうございました。 乾杯!。

要約ワークフロー

以下は、Djangoプロジェクトを開発するためのクイックリファレンスとして使用できる基本的なワークフローです。

セットアップ

  1. 新しいディレクトリ内で、virtualenvを作成してアクティブ化します。

  2. Djangoをインストールします。

  3. プロジェクトを作成します:django-admin.py startproject <name>

  4. 新しいアプリを作成します:python manage.py startapp <appname>

  5. アプリをINSTALLED_APPSタプルに追加します。

基本的なURLとビューを追加する

  1. プロジェクトのurls.pyファイルを新しいアプリにマッピングします。

  2. アプリディレクトリに、urls.pyファイルを作成してアプリのURLを定義します。

  3. アプリのviews.pyに、URLに関連付けられたビューを追加します。それらがHttpResponseオブジェクトを返すことを確認してください。 状況によっては、モデル(データベース)にクエリを実行して、エンドユーザーが要求した必要なデータを取得する必要がある場合もあります。

テンプレートと静的ファイル

  1. プロジェクトルート内にtemplatesおよびstaticディレクトリを作成します。

  2. settings.pyを更新して、テンプレートへのパスを含めます。

  3. テンプレート(HTMLファイル)をtemplatesディレクトリに追加します。 そのファイル内に、静的ファイルを-{% load static %}および{% static "filename" %}で含めることができます。 また、ユーザーが要求したデータを渡す必要がある場合があります。

  4. 必要に応じてviews.pyファイルを更新します。

モデルとデータベース

  1. データベースエンジンをsettings.pyに更新します(必要に応じて、デフォルトでSQLiteになります)。

  2. 新しい移行を作成して適用します。

  3. スーパーユーザーを作成します。

  4. 管理者でアクセスする各アプリにadmin.pyファイルを追加します。

  5. 各アプリのモデルを作成します。

  6. 新しい移行を作成して適用します。 (anyをモデルに変更するたびにこれを実行します)。

フォーム

  1. アプリでforms.pyファイルを作成して、フォーム関連のクラスを定義します。ここでModelFormクラスを定義します。

  2. フォームロジックを処理するためのビューを追加または更新します。たとえば、フォームの表示、フォームデータの保存、検証エラーについてのユーザーへの警告など。

  3. テンプレートを追加または更新して、フォームを表示します。

  4. 新しいビューのアプリのurls.pyファイルにurlpatternを追加します。

ユーザー登録

  1. ユーザーフォームを作成する

  2. 新しいユーザーを作成するためのビューを追加します。

  3. テンプレートを追加してフォームを表示します。

  4. 新しいビューのurlpatternを追加します。

ユーザーログイン

  1. ユーザー資格情報を処理するためのビューを追加します。

  2. ログインフォームを表示するテンプレートを作成します。

  3. 新しいビューのurlpatternを追加します。

テンプレート構造をセットアップする

  1. 各ページの共通部分(ヘッダー、サイドバー、フッターなど)を見つけます。

  2. これらのパーツをベーステンプレートに追加する

  3. 特定のものを作成します。 基本テンプレートに固有のテンプレート。

Django Learning Resources Pack

Djangoは、Real Pythonで毎日使用している素晴らしいWeb開発フレームワークです(realpython.comはDjangoを使用しています)。

Djangoは、基本を正しく理解し、よくある落とし穴を回避すれば、生産性の高いPython Web開発者になれます。

そのため、より深く掘り下げるために使用できるこの無料の「Djangoリソースパック」をまとめました。

Free Bonus:Click here to get access to a free Django Learning Resources Guide (PDF)は、Python + DjangoWebアプリケーションを構築するときに避けるべきヒントとコツおよび一般的な落とし穴を示しています。